def test_read_response_simple(self): responseXml = """ <Response> <Type>Read</Type> <Code>200</Code> <Content> <Clients> <Client> <ID>TestClient1</ID> <Objects> <Object> <ID>1</ID> <ObjectInstance> <ID>2</ID> <Resource> <ID>3</ID> <ResourceInstance> <ID>4</ID> <Value>VALUE</Value> </ResourceInstance> </Resource> </ObjectInstance> </Object> </Objects> </Client> </Clients> </Content> </Response> """ response = server.ReadResponse(responseXml) self.assertEqual("Read", response.type) self.assertEqual("200", response.code) self.assertEqual(("TestClient1", ), response.content.getClientIDs()) self.assertEqual("VALUE", response.getValue(("TestClient1", (1, 2, 3, 4))))
def test_read_response_complex(self): responseXml = """ <Response> <Type>Read</Type> <Code>1234</Code> <Content> <Clients> <Client> <ID>TestClient1</ID> <Objects> <Object> <ID>10</ID> <ObjectInstance> <ID>20</ID> <Resource> <ID>30</ID> <ResourceInstance> <ID>40</ID> <Value>VALUE0</Value> </ResourceInstance> <ResourceInstance> <ID>41</ID> <Value>VALUE1</Value> </ResourceInstance> </Resource> <Resource> <ID>31</ID> <ResourceInstance> <ID>40</ID> <Value>VALUE2</Value> </ResourceInstance> <ResourceInstance> <ID>41</ID> <Value>VALUE3</Value> </ResourceInstance> <ResourceInstance> <ID>42</ID> <Value>VALUE4</Value> </ResourceInstance> </Resource> </ObjectInstance> <ObjectInstance> <ID>21</ID> <Resource> <ID>30</ID> <ResourceInstance> <ID>40</ID> <Value>VALUE5</Value> </ResourceInstance> </Resource> <Resource> <ID>31</ID> <ResourceInstance> <ID>40</ID> <Value>VALUE6</Value> </ResourceInstance> <ResourceInstance> <ID>41</ID> <Value>VALUE7</Value> </ResourceInstance> </Resource> </ObjectInstance> </Object> <Object> <ID>11</ID> <ObjectInstance> <ID>20</ID> <Resource> <ID>30</ID> <ResourceInstance> <ID>40</ID> <Value>VALUE8</Value> </ResourceInstance> <ResourceInstance> <ID>41</ID> <Value>VALUE9</Value> </ResourceInstance> </Resource> </ObjectInstance> <ObjectInstance> <ID>21</ID> <Resource> <ID>30</ID> <ResourceInstance> <ID>40</ID> <Value>VALUE10</Value> </ResourceInstance> </Resource> <Resource> <ID>31</ID> <ResourceInstance> <ID>40</ID> <Value>VALUE11</Value> </ResourceInstance> <ResourceInstance> <ID>41</ID> <Value>VALUE12</Value> </ResourceInstance> </Resource> </ObjectInstance> </Object> </Objects> </Client> </Clients> </Content> </Response> """ response = server.ReadResponse(responseXml) #print(responseXml); print(response); print(response.serialize()) self.assertEqual("Read", response.type) self.assertEqual("1234", response.code) self.assertEqual(("TestClient1", ), response.content.getClientIDs()) self.assertEqual("VALUE0", response.getValue(("TestClient1", (10, 20, 30, 40)))) self.assertEqual("VALUE1", response.getValue(("TestClient1", (10, 20, 30, 41)))) self.assertEqual("VALUE2", response.getValue(("TestClient1", (10, 20, 31, 40)))) self.assertEqual("VALUE3", response.getValue(("TestClient1", (10, 20, 31, 41)))) self.assertEqual("VALUE4", response.getValue(("TestClient1", (10, 20, 31, 42)))) self.assertEqual("VALUE5", response.getValue(("TestClient1", (10, 21, 30, 40)))) self.assertEqual("VALUE6", response.getValue(("TestClient1", (10, 21, 31, 40)))) self.assertEqual("VALUE7", response.getValue(("TestClient1", (10, 21, 31, 41)))) self.assertEqual("VALUE8", response.getValue(("TestClient1", (11, 20, 30, 40)))) self.assertEqual("VALUE9", response.getValue(("TestClient1", (11, 20, 30, 41)))) self.assertEqual("VALUE10", response.getValue(("TestClient1", (11, 21, 30, 40)))) self.assertEqual("VALUE11", response.getValue(("TestClient1", (11, 21, 31, 40)))) self.assertEqual("VALUE12", response.getValue(("TestClient1", (11, 21, 31, 41))))