Passed
Push — development/test ( af2993...f909e7 )
by Daniel
01:08
created

TestParameterHandling   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 26
dl 0
loc 32
rs 10
c 0
b 0
f 0
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A MyTestCase.test_numbers_with_leading_zero() 0 20 4
1
from sources.db_extractor.ParameterHandling import datetime, BasicNeeds, ParameterHandling
2
# package to facilitate multiple operation system operations
3
import unittest
4
5
6
class MyTestCase(unittest.TestCase):
7
8
    def test_numbers_with_leading_zero(self):
9
        bn = BasicNeeds()
10
        json_structure = bn.fn_open_file_and_get_content('expressions.json')
11
        pair_values = []
12
        index_counter = 0
13
        for current_expression_group in json_structure.items():
14
            for current_expression in current_expression_group[1]:
15
                pair_values.append(index_counter)
16
                pair_values[index_counter] = current_expression
17
                index_counter += 1
18
        ph = ParameterHandling()
19
        for current_pair in pair_values:
20
            reference_date = datetime.strptime(current_pair['reference_date'], '%Y-%m-%d')
21
            expression_parts = current_pair['expression'].split('_')
22
            value_to_assert = ph.interpret_known_expression(reference_date, expression_parts)
23
            self.assertEqual(value_to_assert, current_pair['expected'],
24
                             'Provided value was "' + current_pair['reference_date']
25
                             + '", Expression was "' + current_pair['expression'] + '" '
26
                             + '", Expected was "' + current_pair['expected'] + '" '
27
                             + 'but received was "' + value_to_assert + '"...')
28
29
30
if __name__ == '__main__':
31
    unittest.main()
32
33