1 | from __future__ import absolute_import |
||
2 | |||
3 | import unittest |
||
4 | |||
5 | import connectordb |
||
6 | from connectordb.query import * |
||
7 | |||
8 | TEST_URL = connectordb.CONNECTORDB_URL |
||
9 | |||
10 | |||
11 | class TestQuery(unittest.TestCase): |
||
12 | |||
13 | View Code Duplication | def setUp(self): |
|
0 ignored issues
–
show
Duplication
introduced
by
![]() |
|||
14 | self.db = connectordb.ConnectorDB("test", "test", url=TEST_URL) |
||
15 | self.usr = self.db("query_test") |
||
16 | if self.usr.exists(): |
||
17 | self.usr.delete() |
||
18 | self.usr.create("loggertest@localhost", "mypass") |
||
19 | self.device = self.usr["mydevice"] |
||
20 | self.device.create() |
||
21 | self.apikey = self.device.apikey |
||
22 | self.udb = connectordb.ConnectorDB(self.apikey, url=TEST_URL) |
||
23 | |||
24 | def tearDown(self): |
||
25 | self.usr.delete() |
||
26 | |||
27 | def test_merge(self): |
||
28 | s1 = self.udb["stream1"] |
||
29 | s2 = self.udb["stream2"] |
||
30 | s3 = self.udb["stream3"] |
||
31 | s1.create({"type": "number"}) |
||
32 | s2.create({"type": "number"}) |
||
33 | s3.create({"type": "number"}) |
||
34 | |||
35 | s1.insert_array([{"t": 1, |
||
36 | "d": 1}, {"t": 2, |
||
37 | "d": 1}, {"t": 3, |
||
38 | "d": 1}, {"t": 4, |
||
39 | "d": 1}, |
||
40 | {"t": 5, |
||
41 | "d": 1}]) |
||
42 | s2.insert_array([{"t": 1.1, |
||
43 | "d": 2}, {"t": 2.1, |
||
44 | "d": 2}, {"t": 3.1, |
||
45 | "d": 2}, {"t": 4.1, |
||
46 | "d": 2}, |
||
47 | {"t": 5.1, |
||
48 | "d": 2}]) |
||
49 | s3.insert_array([{"t": 1.2, |
||
50 | "d": 3}, {"t": 2.2, |
||
51 | "d": 3}, {"t": 3.3, |
||
52 | "d": 3}, {"t": 4.4, |
||
53 | "d": 3}, |
||
54 | {"t": 5.5, |
||
55 | "d": 3}]) |
||
56 | |||
57 | m = Merge(self.udb) |
||
58 | m.addStream(s1) |
||
59 | m.addStream(s2.path, t1=3.0) |
||
60 | m.addStream(s3.name, i1=1, i2=2) |
||
61 | |||
62 | result = m.run() |
||
63 | self.assertListEqual(result, [{"t": 1, |
||
64 | "d": 1}, {"t": 2, |
||
65 | "d": 1}, {"t": 2.2, |
||
66 | "d": 3}, |
||
67 | {"t": 3, |
||
68 | "d": 1}, {"t": 3.1, |
||
69 | "d": 2}, {"t": 4, |
||
70 | "d": 1}, |
||
71 | {"t": 4.1, |
||
72 | "d": 2}, {"t": 5, |
||
73 | "d": 1}, {"t": 5.1, |
||
74 | "d": 2}]) |
||
75 | |||
76 | def test_tdataset(self): |
||
77 | s1 = self.udb["temperature"] |
||
78 | |||
79 | s1.create({"type": "number"}) |
||
80 | |||
81 | s1.insert_array([{"t": 2, |
||
82 | "d": 73}, {"t": 5, |
||
83 | "d": 84}, {"t": 8, |
||
84 | "d": 81}, {"t": 11, |
||
85 | "d": 79}]) |
||
86 | |||
87 | ds = Dataset(self.udb, t1=0, t2=8.1, dt=2) |
||
88 | |||
89 | ds.addStream("temperature", "closest") |
||
90 | |||
91 | res = ds.run() |
||
92 | |||
93 | self.assertEqual(5, len(res)) |
||
94 | self.assertListEqual( |
||
95 | res, [{ |
||
96 | "d": {"temperature": 73} |
||
97 | }, {"t": 2, |
||
98 | "d": {"temperature": 73 |
||
99 | }}, {"t": 4, |
||
100 | "d": {"temperature": 84}}, |
||
101 | {"t": 6, |
||
102 | "d": {"temperature": 84 |
||
103 | }}, {"t": 8, |
||
104 | "d": {"temperature": 81}}]) |
||
105 | |||
106 | def test_xdataset(self): |
||
107 | s1 = self.udb["temperature"] |
||
108 | s2 = self.udb["mood_rating"] |
||
109 | |||
110 | s1.create({"type": "number"}) |
||
111 | s2.create({"type": "number"}) |
||
112 | |||
113 | s1.insert_array([{"t": 2, |
||
114 | "d": 73}, {"t": 5, |
||
115 | "d": 84}, {"t": 8, |
||
116 | "d": 81}, {"t": 11, |
||
117 | "d": 79}]) |
||
118 | s2.insert_array([{"t": 1, |
||
119 | "d": 7}, {"t": 4, |
||
120 | "d": 3}, {"t": 11, |
||
121 | "d": 5}]) |
||
122 | |||
123 | ds = Dataset(self.udb, s2) |
||
124 | ds.addStream("temperature", "closest") |
||
125 | res = ds.run() |
||
126 | |||
127 | self.assertListEqual(res, [ |
||
128 | { |
||
129 | "t": 1, |
||
130 | "d": {"temperature": 73, |
||
131 | "x": 7} |
||
132 | }, { |
||
133 | "t": 4, |
||
134 | "d": {"temperature": 84, |
||
135 | "x": 3} |
||
136 | }, { |
||
137 | "t": 11, |
||
138 | "d": |
||
139 | {"temperature": 79, |
||
140 | "x": 5} |
||
141 | } |
||
142 | ]) |
||
143 | |||
144 | if __name__ == "__main__": |
||
145 | unittest.main() |
||
146 |