Passed
Branch master (bc72f6)
by Rafael S.
01:23
created

TestPortfolio.test_keys()   A

Complexity

Conditions 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 5
rs 9.4285
cc 1
1
"""Base class for Portfolio tests."""
2
3
from __future__ import absolute_import
4
import copy
5
import unittest
6
import trade.accumulator as accumulator
7
8
class TestPortfolio(unittest.TestCase):
9
    """Base class for Portfolio tests."""
10
11
    initial_state = None
12
    operations = []
13
    state = {}
14
15
    def setUp(self):
16
        self.portfolio = accumulator.Portfolio(state=self.initial_state)
17
        for operation in self.operations:
18
            self.portfolio.accumulate(copy.deepcopy(operation))
19
20
    def test_accumulators_states(self):
21
        """Test the state of each accumulator."""
22
        for asset, state in self.state.items():
23
            for key in state.keys():
24
                self.assertEqual(
25
                    self.portfolio.subjects[asset].state[key],
26
                    state[key]
27
                )
28
29
    def test_keys(self):
30
        """Test the each accumulator key."""
31
        self.assertEqual(
32
            len(self.portfolio.subjects.keys()),
33
            len(self.state.keys())
34
        )
35