-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest__MatchingKeyInfo.py
More file actions
39 lines (26 loc) · 1.91 KB
/
test__MatchingKeyInfo.py
File metadata and controls
39 lines (26 loc) · 1.91 KB
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
import pytest
from src.csvdiff2.csvdiff import MatchingKeyInfo
class Expected:
def __init__(self, index, max_length):
self.index = index
self.max_length = max_length
class RowAndExpectedManagedKey:
def __init__(self, row, expected_managed_key):
self.row = row
self.expected_managed_key = expected_managed_key
@pytest.mark.parametrize(
"specified_matching_key, expected, row_and_expected_managed_key_pair",
[
pytest.param('0', Expected(index=0, max_length=0), RowAndExpectedManagedKey(['key1', 'value1'], expected_managed_key='key1'), id='index only case-1'),
pytest.param('2', Expected(index=2, max_length=0), RowAndExpectedManagedKey(['key1', 'value1', 'key2'], expected_managed_key='key2'), id='index only case-2'),
pytest.param('0:9', Expected(index=0, max_length=9), RowAndExpectedManagedKey(['1', 'value1'], expected_managed_key='000000001'), id='index and max length with 1 digit'),
pytest.param('0:9', Expected(index=0, max_length=9), RowAndExpectedManagedKey(['123456789', 'value1'], expected_managed_key='123456789'), id='index and max length with full digits'),
pytest.param('0:9', Expected(index=0, max_length=9), RowAndExpectedManagedKey(['12345678', 'value1'], expected_managed_key='012345678'), id='index and max length with full digits - 1'),
pytest.param('0:9', Expected(index=0, max_length=9), RowAndExpectedManagedKey(['abc', 'value1'], expected_managed_key='000000abc'), id='index and max length with alphabet'),
],
)
def test_matching_key_info(specified_matching_key, expected, row_and_expected_managed_key_pair):
sut = MatchingKeyInfo(specified_matching_key)
assert sut.index == expected.index
assert sut.max_length == expected.max_length
assert sut.key_for(row_and_expected_managed_key_pair.row) == row_and_expected_managed_key_pair.expected_managed_key