2 Unit tests for the osrf.net_obj module
6 sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
8 import osrf.json, osrf.net_obj, unittest
10 class TestObject(object):
11 """Test object with basic JSON structures"""
15 self.array = [1,2,3,4]
16 self.dict = {'foo': 'bar', 'key': 'value'}
21 class CheckNetworkEncoder(unittest.TestCase):
22 """Tests the NetworkEncoder JSON encoding extension"""
25 osrf.net_obj.register_hint('osrfMessage', ['threadTrace', 'locale', 'type', 'payload'], 'hash')
26 self.testo = TestObject()
27 self.ne = osrf.json.NetworkEncoder()
29 def test_connect(self):
30 test_json = self.ne.default(
31 osrf.net_obj.NetworkObject.osrfMessage({
37 self.assertEqual(test_json, {'__p':
38 {'threadTrace': 0, 'type': 'CONNECT'},
42 def test_connect_array(self):
43 test_json = self.ne.default(
44 osrf.net_obj.NetworkObject.osrfMessage({
51 self.assertEqual(test_json, {'__p':
52 {'threadTrace': 0, 'protocol': 'array', 'type': 'CONNECT'},
56 def test_connect_to_xml(self):
57 test_json = self.ne.default(
58 osrf.net_obj.NetworkObject.osrfMessage({
65 osrf.net_obj.to_xml(test_json),
66 "<object><element key='__p'><object><element key='threadTrace'>"
67 "<number>0</number></element><element key='type'>"
68 "<string>CONNECT</string></element></object></element>"
69 "<element key='__c'><string>osrfMessage</string></element></object>"
73 if __name__ == '__main__':