Passed
Push — development/test ( f909e7...02e03c )
by Daniel
01:11
created

MyTestCase.test_interpret_known_expression()   A

Complexity

Conditions 4

Size

Total Lines 20
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 4
eloc 20
nop 1
dl 0
loc 20
rs 9.4
c 0
b 0
f 0
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_interpret_known_expression(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