Code Duplication    Length = 8-8 lines in 3 locations

tests/tests_history.py 3 locations

@@ 97-104 (lines=8) @@
94
        self.assertEqual(res[0].Value.Value, self.values[0])
95
96
    # start time greater than end time, should return reverse order
97
    def test_history_read_5_in_timeframe_start_greater_than_end(self):
98
        now = datetime.utcnow()
99
        old = now - timedelta(days=6)
100
101
        res = self.var.read_raw_history(now, old, 5)
102
        self.assertEqual(len(res), 5)
103
        self.assertEqual(res[-1].Value.Value, self.values[-5])
104
        self.assertEqual(res[0].Value.Value, self.values[-1])
105
106
107
@@ 87-94 (lines=8) @@
84
        self.assertEqual(res[-1].Value.Value, self.values[-1])
85
        self.assertEqual(res[0].Value.Value, self.values[0])
86
87
    def test_history_read_5_in_timeframe(self):
88
        now = datetime.utcnow()
89
        old = now - timedelta(days=6)
90
91
        res = self.var.read_raw_history(old, now, 5)
92
        self.assertEqual(len(res), 5)
93
        self.assertEqual(res[-1].Value.Value, self.values[4])
94
        self.assertEqual(res[0].Value.Value, self.values[0])
95
96
    # start time greater than end time, should return reverse order
97
    def test_history_read_5_in_timeframe_start_greater_than_end(self):
@@ 78-85 (lines=8) @@
75
        self.assertEqual(len(res), 2)
76
        self.assertEqual(res[-1].Value.Value, self.values[-2])  # self.values was -1
77
    
78
    def test_history_read_all(self):
79
        now = datetime.utcnow()
80
        old = now - timedelta(days=6)
81
82
        res = self.var.read_raw_history(old, now, 0)
83
        self.assertEqual(len(res), 20)
84
        self.assertEqual(res[-1].Value.Value, self.values[-1])
85
        self.assertEqual(res[0].Value.Value, self.values[0])
86
87
    def test_history_read_5_in_timeframe(self):
88
        now = datetime.utcnow()