annotate service/mqtt_to_rdf/mqtt_message_test.py @ 1630:b3132cd02686

add mqtt_message
author drewp@bigasterisk.com
date Sat, 11 Sep 2021 23:33:55 -0700
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1630
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
1 import unittest
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
2
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
3 from rdflib import BNode, Literal, Namespace
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
4
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
5 from mqtt_message import graphFromMessage
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
6
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
7 ROOM = Namespace('http://projects.bigasterisk.com/room/')
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
8 JSON = Namespace('http://bigasterisk.com/anyJson/')
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
9
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
10
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
11 class TestGraphFromMessage(unittest.TestCase):
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
12
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
13 def testTopicOutput(self):
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
14 graph = graphFromMessage(b'a/b/topic', b'body')
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
15 self.assertEqual(len(graph), 9)
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
16
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
17 def testFloatBody(self):
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
18 graph = graphFromMessage(b'a/b/topic', b'3.3')
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
19 self.assertEqual(list(graph.objects(None, ROOM['bodyFloat'])), [Literal(3.3)])
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
20
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
21 def testStrBody(self):
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
22 graph = graphFromMessage(b'a/b/topic', b'3.x')
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
23 self.assertEqual(list(graph.objects(None, ROOM['body'])), [Literal("3.x")])
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
24
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
25 def testJsonEmptyBody(self):
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
26 graph = graphFromMessage(b'x', b'{}')
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
27 [jsonRoot] = graph.objects(None, ROOM['bodyJson'])
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
28 self.assertIsInstance(jsonRoot, BNode)
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
29
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
30 def testJsonBody(self):
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
31 graph = graphFromMessage(b'x', b'{"one":2}')
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
32 [jsonRoot] = graph.objects(None, ROOM['bodyJson'])
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
33 [(p, o)] = graph.predicate_objects(jsonRoot)
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
34 self.assertEqual(p, JSON['one'])
b3132cd02686 add mqtt_message
drewp@bigasterisk.com
parents:
diff changeset
35 self.assertEqual(o, Literal(2))