|
1
|
|
|
from os import environ |
|
2
|
|
|
from contextlib import contextmanager |
|
3
|
|
|
|
|
4
|
|
|
from pytest import raises |
|
5
|
|
|
|
|
6
|
|
|
from ocrd_utils.config import config, OcrdEnvConfig |
|
7
|
|
|
|
|
8
|
|
|
@contextmanager |
|
9
|
|
|
def temp_env_var(k, v): |
|
10
|
|
|
v_before = environ.get(k, None) |
|
|
|
|
|
|
11
|
|
|
environ[k] = v |
|
12
|
|
|
yield |
|
13
|
|
|
if v_before is not None: |
|
14
|
|
|
environ[k] = v_before |
|
15
|
|
|
else: |
|
16
|
|
|
environ.pop(k) |
|
17
|
|
|
|
|
18
|
|
|
def test_str(): |
|
19
|
|
|
c = OcrdEnvConfig() |
|
20
|
|
|
v = c.add('OCRD_FOO_BAR_ETC', description="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus lacinia, eros id accumsan tempor, arcu augue viverra est, quis ultrices lectus eros et quam. Donec vel metus iaculis, maximus enim eget, mattis leo. Morbi molestie placerat dolor non finibus. Vivamus egestas rutrum est quis gravida. Vivamus sed cursus lectus. Etiam sed felis nisl. Suspendisse massa nunc, eleifend vitae pretium sit amet, porta et velit. Pellentesque risus justo, tincidunt at mattis ac, sollicitudin sit amet quam. Donec euismod suscipit bibendum.", default=(True, lambda: 42)) |
|
21
|
|
|
print(c.describe('OCRD_FOO_BAR_ETC')) |
|
22
|
|
|
assert c.describe('OCRD_FOO_BAR_ETC') == """\ |
|
23
|
|
|
OCRD_FOO_BAR_ETC |
|
24
|
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing |
|
25
|
|
|
elit. Phasellus lacinia, eros id accumsan tempor, |
|
26
|
|
|
arcu augue viverra est, quis ultrices lectus eros |
|
27
|
|
|
et quam. Donec vel metus iaculis, maximus enim |
|
28
|
|
|
eget, mattis leo. Morbi molestie placerat dolor |
|
29
|
|
|
non finibus. Vivamus egestas rutrum est quis |
|
30
|
|
|
gravida. Vivamus sed cursus lectus. Etiam sed |
|
31
|
|
|
felis nisl. Suspendisse massa nunc, eleifend vitae |
|
32
|
|
|
pretium sit amet, porta et velit. Pellentesque |
|
33
|
|
|
risus justo, tincidunt at mattis ac, sollicitudin |
|
34
|
|
|
sit amet quam. Donec euismod suscipit bibendum. |
|
35
|
|
|
(Default: "42")""" |
|
36
|
|
|
|
|
37
|
|
|
def test_OCRD_METS_CACHING(): |
|
38
|
|
|
with temp_env_var('OCRD_METS_CACHING', 'true'): |
|
39
|
|
|
assert config.OCRD_METS_CACHING == True |
|
40
|
|
|
with temp_env_var('OCRD_METS_CACHING', '1'): |
|
41
|
|
|
assert config.OCRD_METS_CACHING == True |
|
42
|
|
|
with temp_env_var('OCRD_METS_CACHING', '0'): |
|
43
|
|
|
assert config.OCRD_METS_CACHING == False |
|
44
|
|
|
with temp_env_var('OCRD_METS_CACHING', 'false'): |
|
45
|
|
|
assert config.OCRD_METS_CACHING == False |
|
46
|
|
|
with temp_env_var('OCRD_METS_CACHING', 'some other value'): |
|
47
|
|
|
with raises(ValueError, match="'OCRD_METS_CACHING' set to invalid value 'some other value'"): |
|
48
|
|
|
config.OCRD_METS_CACHING |
|
49
|
|
|
|
|
50
|
|
|
def test_OCRD_PROFILE(): |
|
51
|
|
|
with temp_env_var('OCRD_PROFILE', ''): |
|
52
|
|
|
config.OCRD_PROFILE |
|
53
|
|
|
with temp_env_var('OCRD_PROFILE', 'CPU'): |
|
54
|
|
|
config.OCRD_PROFILE |
|
55
|
|
|
with temp_env_var('OCRD_PROFILE', 'RSS,CPU'): |
|
56
|
|
|
config.OCRD_PROFILE |
|
57
|
|
|
with temp_env_var('OCRD_PROFILE', 'some other value'): |
|
58
|
|
|
with raises(ValueError, match="'OCRD_PROFILE' set to invalid value 'some other value'"): |
|
59
|
|
|
config.OCRD_PROFILE |
|
60
|
|
|
|