]>
Commit | Line | Data |
---|---|---|
1 | from contextlib import contextmanager | |
2 | ||
3 | ||
4 | @contextmanager | |
5 | def monkeypatch(obj, attribute_name, new_value): | |
6 | """ | |
7 | Like pytest's monkeypatch, but as a value manager. | |
8 | """ | |
9 | old_value = getattr(obj, attribute_name) | |
10 | try: | |
11 | setattr(obj, attribute_name, new_value) | |
12 | yield | |
13 | finally: | |
14 | setattr(obj, attribute_name, old_value) | |
15 | ||
16 | ||
17 | def indent_block(text, indention=' '): | |
18 | """This function indents a text block with a default of four spaces.""" | |
19 | temp = '' | |
20 | while text and text[-1] == '\n': | |
21 | temp += text[-1] | |
22 | text = text[:-1] | |
23 | lines = text.split('\n') | |
24 | return '\n'.join(map(lambda s: indention + s, lines)) + temp |