Test Failed
Push — master ( 94b1f7...ff0954 )
by Oleksandr
12:55 queued 02:06
created

tools_tests.test_rest_object   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 64
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 6
eloc 51
dl 0
loc 64
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B tests.unit.tools_tests.test_rest_object.TestRESTObject.test_new_class() 0 56 6
1
import unittest
2
import sys
3
4
from tabpy.tabpy_tools.rest import RESTObject, RESTProperty, enum
5
6
7
class TestRESTObject(unittest.TestCase):
8
    def test_new_class(self):
9
        class FooObject(RESTObject):
10
            f = RESTProperty(float)
11
            i = RESTProperty(int)
12
            s = RESTProperty(str)
13
            e = RESTProperty(enum("a", "b"))
14
15
        f = FooObject(f="6.0", i="3", s="hello!")
16
        self.assertEqual(f.f, 6.0)
17
        self.assertEqual(f.i, 3)
18
        self.assertEqual(f.s, "hello!")
19
20
        with self.assertRaises(AttributeError):
21
            f.e
22
23
        self.assertEqual(f["f"], 6.0)
24
        self.assertEqual(f["i"], 3)
25
        self.assertEqual(f["s"], "hello!")
26
27
        with self.assertRaises(KeyError):
28
            f["e"]
29
        with self.assertRaises(KeyError):
30
            f["cat"]
31
        with self.assertRaises(KeyError):
32
            f["cat"] = 5
33
34
        self.assertEqual(len(f), 3)
35
        self.assertEqual(set(f), set(["f", "i", "s"]))
36
        self.assertEqual(set(f.keys()), set(["f", "i", "s"]))
37
        self.assertEqual(set(f.values()), set([6.0, 3, "hello!"]))
38
        self.assertEqual(set(f.items()), set([("f", 6.0), ("i", 3), ("s", "hello!")]))
39
40
        f.e = "a"
41
        self.assertEqual(f.e, "a")
42
        self.assertEqual(f["e"], "a")
43
        f["e"] = "b"
44
        self.assertEqual(f.e, "b")
45
46
        with self.assertRaises(ValueError):
47
            f.e = "fubar"
48
49
        f.f = sys.float_info.max
50
        self.assertEqual(f.f, sys.float_info.max)
51
        f.f = float("inf")
52
        self.assertEqual(f.f, float("inf"))
53
        f.f = None
54
        self.assertEqual(f.f, None)
55
56
        class BarObject(FooObject):
57
            x = RESTProperty(str)
58
59
        f = BarObject(f="6.0", i="3", s="hello!", x="5")
60
        self.assertEqual(f.f, 6.0)
61
        self.assertEqual(f.i, 3)
62
        self.assertEqual(f.s, "hello!")
63
        self.assertEqual(f.x, "5")
64