1
+ import pytz
2
+ from datetime import datetime
3
+
4
+ from django .test import TestCase
5
+ from app .models import Sensor , Data
6
+
7
+ class ByRoomTestCase (TestCase ):
8
+ def setUp (self ):
9
+ self .sensor_1 = Sensor .objects .create (
10
+ deveui = "24e124128c019417" ,
11
+ devicename = "AM107-33" ,
12
+ room = "E103" ,
13
+ building = "E" ,
14
+ floor = 1 ,
15
+ batterylevel = 60 ,
16
+ externalpowersource = False
17
+ )
18
+
19
+ self .sensor_2 = Sensor .objects .create (
20
+ deveui = "24e124128c019416" ,
21
+ devicename = "AM107-33" ,
22
+ room = "E102" ,
23
+ building = "E" ,
24
+ floor = 1 ,
25
+ batterylevel = 11.7 ,
26
+ externalpowersource = True
27
+ )
28
+
29
+ timezone = pytz .timezone ('Europe/Paris' )
30
+ self .local_time_1 = datetime .now (timezone ).isoformat ()
31
+
32
+ self .data_1 = Data .objects .create (
33
+ time = self .local_time_1 ,
34
+ temperature = 23.5 ,
35
+ humidity = 45.3 ,
36
+ activity = 0 ,
37
+ co2 = 500 ,
38
+ tvoc = 10000 ,
39
+ illuminance = 20000 ,
40
+ infrared = 30000 ,
41
+ infrared_and_visible = 40000 ,
42
+ pressure = 1013.25 ,
43
+ sensor = Sensor .objects .get (deveui = self .sensor_1 .deveui )
44
+ )
45
+
46
+ self .local_time_2 = datetime .now (timezone ).isoformat ()
47
+
48
+ self .data_2 = Data .objects .create (
49
+ time = self .local_time_2 ,
50
+ temperature = 23.5 ,
51
+ humidity = 45.3 ,
52
+ activity = 0 ,
53
+ co2 = 500 ,
54
+ tvoc = 10000 ,
55
+ illuminance = 20000 ,
56
+ infrared = 30000 ,
57
+ infrared_and_visible = 40000 ,
58
+ pressure = 1013.25 ,
59
+ sensor = Sensor .objects .get (deveui = self .sensor_2 .deveui )
60
+ )
61
+
62
+ self .local_time_1 = str (self .local_time_1 ).split ('+' )[0 ]
63
+ self .local_time_2 = str (self .local_time_2 ).split ('+' )[0 ]
64
+
65
+ def test_endpoint_byroom (self ):
66
+ response = self .client .get ('/ByRoom/' )
67
+
68
+ expected = [
69
+ {
70
+ "room" : self .sensor_1 .room ,
71
+ "all_data" : [
72
+ self .data_1 .id
73
+ ],
74
+ "sensor" : self .sensor_1 .deveui ,
75
+ "building" : self .sensor_1 .building ,
76
+ "floor" : self .sensor_1 .floor
77
+ },
78
+ {
79
+ "room" : self .sensor_2 .room ,
80
+ "all_data" : [
81
+ self .data_2 .id
82
+ ],
83
+ "sensor" : self .sensor_2 .deveui ,
84
+ "building" : self .sensor_2 .building ,
85
+ "floor" : self .sensor_2 .floor
86
+ }
87
+ ]
88
+
89
+ self .assertEqual (response .status_code , 200 )
90
+ self .assertEqual (response .json (), expected )
91
+
92
+ def test_endpoint_byroom_by_room_1 (self ):
93
+ response = self .client .get (f'/ByRoom/{ self .sensor_1 .room } /' )
94
+
95
+ expected = {
96
+ "room" : self .sensor_1 .room ,
97
+ "all_data" : [
98
+ self .data_1 .id
99
+ ],
100
+ "sensor" : self .sensor_1 .deveui ,
101
+ "building" : self .sensor_1 .building ,
102
+ "floor" : self .sensor_1 .floor
103
+ }
104
+
105
+ self .assertEqual (response .status_code , 200 )
106
+ self .assertEqual (response .json (), expected )
107
+
108
+ def test_endpoint_byroom_by_room_2 (self ):
109
+ response = self .client .get (f'/ByRoom/{ self .sensor_2 .room } /' )
110
+
111
+ expected = {
112
+ "room" : self .sensor_2 .room ,
113
+ "all_data" : [
114
+ self .data_2 .id
115
+ ],
116
+ "sensor" : self .sensor_2 .deveui ,
117
+ "building" : self .sensor_2 .building ,
118
+ "floor" : self .sensor_2 .floor
119
+ }
120
+
121
+ self .assertEqual (response .status_code , 200 )
122
+ self .assertEqual (response .json (), expected )
0 commit comments