-
Notifications
You must be signed in to change notification settings - Fork 134
/
Copy pathdtest_config_test.py
121 lines (97 loc) · 4.26 KB
/
dtest_config_test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
import os
from re import search
from unittest import TestCase
from dtest_config import DTestConfig
from mock import Mock, patch
from pytest import UsageError, raises
import ccmlib.repository
import ccmlib.common
def _mock_responses(responses, default_response=None):
return lambda input: responses[input] if input in responses else \
"%s/meta_tests/cassandra-dir-4.0-beta" % os.getcwd() if input == "--cassandra-dir" else default_response
def _check_with_params(params):
config = Mock()
config.getoption.side_effect = _mock_responses(params)
config.getini.side_effect = _mock_responses({})
dTestConfig = DTestConfig()
dTestConfig.setup(config)
return dTestConfig
def _check_with_params_expect(params, pattern):
with raises(UsageError, match=pattern):
_check_with_params(params)
class DTestConfigTest(TestCase):
def test_invalid_cass_dir_no_version(self):
_check_with_params_expect({
'--cassandra-dir': 'blah'
}, "The Cassandra directory blah does not seem to be valid")
def test_cass_dir_and_version(self):
_check_with_params_expect({
'--cassandra-version': '3.11'
}, "Cassandra build directory is already defined")
def test_no_cass_dir(self):
with patch.object(ccmlib.repository, "setup") as mocked_setup:
mocked_setup.side_effect = _mock_responses({'3.2': ("%s/meta_tests/cassandra-dir-3.2" % os.getcwd(), '3.2.0')})
c = _check_with_params({
'--cassandra-dir': None,
'--cassandra-version': '3.2'
})
assert c.cassandra_version == '3.2'
assert search("^3.2", str(c.cassandra_version_from_build))
def test_valid_cass_dir_no_version(self):
c = _check_with_params({
})
assert c.cassandra_version is None
assert c.cassandra_version_from_build == '4.0-beta'
def test_no_cass_dir_no_version(self):
_check_with_params_expect({
'--cassandra-dir': None
}, "You must provide either --cassandra-dir or --cassandra-version")
def test_illegal_args_combinations_for_resource_intensive_tests(self):
_check_with_params_expect({
'--only-resource-intensive-tests': True,
'--skip-resource-intensive-tests': True
}, 'does not make any sense')
_check_with_params_expect({
'--force-resource-intensive-tests': True,
'--skip-resource-intensive-tests': True
}, 'does not make any sense')
_check_with_params_expect({
'--only-resource-intensive-tests': True,
'--force-resource-intensive-tests': True,
'--skip-resource-intensive-tests': True
}, 'does not make any sense')
def test_legal_args_combinations_for_resource_intensive_tests(self):
c = _check_with_params({
'--only-resource-intensive-tests': True
})
assert c.only_resource_intensive_tests
assert not c.skip_resource_intensive_tests
assert not c.force_execution_of_resource_intensive_tests
c = _check_with_params({
'--only-resource-intensive-tests': True,
'--force-resource-intensive-tests': True
})
assert c.only_resource_intensive_tests
assert not c.skip_resource_intensive_tests
assert c.force_execution_of_resource_intensive_tests
c = _check_with_params({
'--skip-resource-intensive-tests': True
})
assert not c.only_resource_intensive_tests
assert c.skip_resource_intensive_tests
assert not c.force_execution_of_resource_intensive_tests
c = _check_with_params({
})
assert not c.only_resource_intensive_tests
assert not c.skip_resource_intensive_tests
assert not c.force_execution_of_resource_intensive_tests
def off_heap_memtables_not_supported(self):
_check_with_params_expect({
'--cassandra-dir': "%s/meta_tests/cassandra-dir-3.2" % os.getcwd(),
'--use-off-heap-memtables': True
}, "The selected Cassandra version 3.2 doesn't support the provided option")
def off_heap_memtables_supported(self):
c = _check_with_params({
'--use-off-heap-memtables': True
})
assert c.use_off_heap_memtables