File: test_var.py

package info (click to toggle)
wreport 3.36-1.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 17,572 kB
  • sloc: cpp: 18,927; python: 583; sh: 78; makefile: 13
file content (112 lines) | stat: -rw-r--r-- 4,102 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/usr/bin/python3
import wreport
import unittest


class Var(unittest.TestCase):
    def setUp(self):
        self.table = wreport.Vartable.get_bufr(master_table_version_number=24)

    def testUndefCreation(self):
        var = wreport.Var(self.table["B01001"])
        self.assertEqual(var.code, "B01001")
        self.assertEqual(var.info.code, "B01001")
        self.assertFalse(var.isset)

    def testIntCreation(self):
        var = wreport.Var(self.table["B05001"], 12)
        self.assertEqual(var.code, "B05001")
        self.assertEqual(var.isset, True)
        self.assertEqual(var.enqi(), 12)
        self.assertEqual(var.enqd(), 0.00012)
        self.assertEqual(var.enqc(), "12")

    def testFloatCreation(self):
        var = wreport.Var(self.table["B05001"], 12.4)
        self.assertEqual(var.code, "B05001")
        self.assertEqual(var.isset, True)
        self.assertEqual(var.enqi(), 1240000)
        self.assertEqual(var.enqd(), 12.4)
        self.assertEqual(var.enqc(), "1240000")

    def testStringCreation(self):
        var = wreport.Var(self.table["B05001"], "123456")
        self.assertEqual(var.code, "B05001")
        self.assertEqual(var.isset, True)
        self.assertEqual(var.enqi(), 123456)
        self.assertEqual(var.enqd(), 1.23456)
        self.assertEqual(var.enqc(), "123456")

    def testStringification(self):
        var = wreport.Var(self.table["B01001"])
        self.assertEqual(str(var), "None")
        self.assertEqual(repr(var), "Var('B01001', None)")
        self.assertEqual(var.format(), "")
        self.assertEqual(var.format("foo"), "foo")

        var = wreport.Var(self.table["B05001"], 12.4)
        self.assertEqual(str(var), "12.40000")
        self.assertEqual(repr(var), "Var('B05001', 12.40000)")
        self.assertEqual(var.format("foo"), "12.40000")

    def testEnq(self):
        var = wreport.Var(self.table["B01001"], 1)
        self.assertEqual(type(var.enq()), int)
        self.assertEqual(var.enq(), 1)
        var = wreport.Var(self.table["B05001"], 1.12345)
        self.assertEqual(type(var.enq()), float)
        self.assertEqual(var.enq(), 1.12345)
        var = wreport.Var(self.table["B01019"], "ciao")
        self.assertIsInstance(var.enq(), str)
        self.assertEqual(var.enq(), "ciao")

    def testGet(self):
        var = wreport.Var(self.table["B01001"])
        self.assertIsNone(var.get())
        self.assertIs(var.get("foo"), "foo")
        var = wreport.Var(self.table["B01001"], 1)
        self.assertIs(var.get(), 1)
        var = wreport.Var(self.table["B05001"], 1.12345)
        self.assertEqual(var.get(), 1.12345)
        var = wreport.Var(self.table["B01019"], "ciao")
        self.assertEqual(var.get(), "ciao")

    def testEq(self):
        var = wreport.Var(self.table["B01001"], 1)
        self.assertEqual(var, var)
        self.assertEqual(var, wreport.Var(self.table["B01001"], 1))
        self.assertNotEqual(var, wreport.Var(self.table["B01001"], 2))
        self.assertNotEqual(var, wreport.Var(self.table["B01002"], 1))
        self.assertIsNot(var, None)
        self.assertIsNot(wreport.Var(self.table["B01001"]), None)

    def testAttrs(self):
        var = wreport.Var(self.table["B01001"], 1)

        # Querying a nonexisting attribute returns None
        self.assertIsNone(var.enqa("B33007"))

        # Querying attributes when there are none returns an empty list
        self.assertEqual(var.get_attrs(), [])

        # Removing a non existing attribute does nothing
        var.unseta("B33007")

        # Add an attribute
        var.seta(wreport.Var(self.table["B33007"], 50))

        # Query it
        attr = var.enqa("B33007")
        self.assertEqual(attr.code, "B33007")
        self.assertEqual(attr.enqd(), 50.0)

        # List attributes
        attrs = var.get_attrs()
        self.assertEqual(len(attrs), 1)
        self.assertEqual(attrs[0].code, "B33007")
        self.assertEqual(attrs[0].enqd(), 50.0)

        # Remove it
        var.unseta("B33007")
        self.assertIsNone(var.enqa("B33007"))
        self.assertEqual(var.get_attrs(), [])