def testGET(self): """Simple domain GET test retrieving a domain""" expected = """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <domain title="The Serenity domain"> <profile name="defaults" title="The defaults profile" href="http://www.restms.org/3:Defaults" /> <feed name="Announcements" title="Announcement channel." type="" license="None" href="http://testserver/restms/feed/Announcements" /> <feed name="commands" title="Command processing queue" type="fifo" license="GPL" href="http://testserver/restms/feed/commands" /> <feed name="direct" title="Direct feed" type="direct" license="proprietary" href="http://testserver/restms/feed/direct" /> </domain> </restms> """ r = self.client.get('/restms/domain/Serenity') self.assertEqual(r.status_code, 200) self.assertTrue(tools.linediff(r.content, expected))
def testPUT(self): """Complex feed PUT test (modifies, then retrieves and checks a feed)""" client = tools.RESTclient() r = client.put('/restms/feed/Announcements', content_type="restms+xml", data = """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <feed name="Announcements" type="" title="Announcement channel - test modification." license="BSD" /> </restms> """) self.assertEqual(r.status_code, 200) r = self.client.get('/restms/feed/Announcements') self.assertEqual(r.status_code, 200) self.assertTrue(tools.linediff(r.content, """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <feed name="Announcements" type="" title="Announcement channel - test modification." license="BSD" /> </restms> """))
def testGET(self): """Simple message GET test retrieving some messages""" expected = [ """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <message address="*.*" reply_to="me"> <header name="my_header" value="heyho" /> <content href="http://testserver/restms/resource/content_2" /> <content type="text/funny" encoding="ascii" >Das Reh springt hoch, das Reh springt weit, warum auch nicht, es hat ja Zeit.</content> </message> </restms> """, """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <message address="next" reply_to="nobody"> <header name="funny header" value="123" /> <content type="text/cmd" encoding="ascii" >Do something! NOW!</content> </message> </restms> """, """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <message address="next" reply_to="nobody"> <header name="funny header" value="123" /> <content type="text/cmd" encoding="ascii" >Do something! NOW!</content> </message> </restms> """, """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <message address="next" reply_to="nobody"> <header name="funny header" value="123" /> <content type="text/cmd" encoding="ascii" >Do something! NOW!</content> </message> </restms> """, """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <message address="trallalla" reply_to="the pope"> <header name="one more" value="header value" /> <content href="http://testserver/restms/resource/content_3" /> </message> </restms> """] for i in range(1,len(expected) + 1): r = self.client.get('/restms/resource/message_%s' % (i)) self.assertEqual(r.status_code, 200) self.assertTrue(tools.linediff(r.content, expected[i-1], message="msg #%s" % i))
def testPOST(self): """Complex pipe POST test""" data = """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <join address="alt.rec.misc" feed="http://testserver/restms/feed/Announcements"> <header name="some test header" value="qwertz" /> <header name="more test header" value="brfff" /> </join> </restms> """ r = self.client.post('/restms/resource/pipe_1', content_type="restms+xml", data = data) self.assertEqual(r.status_code, 201) self.assertTrue(tools.linediff(r.content, data)) join_loc = r["Location"].split("/")[-1] r = self.client.get('/restms/resource/%s' % join_loc) self.assertEqual(r.status_code, 200) self.assertTrue(tools.linediff(r.content, data))
def testGET(self): """Simple content GET test retrieving non-embedded content""" expected = """The wise programmer is told about Tao And follows it. The average programmer is told about Tao And searches for it. The foolish programmer is told about Tao And laughs at it. If it were not for laughter, there would be no Tao. """ r = self.client.get('/restms/resource/content_2') self.assertEqual(r.status_code, 200) self.assertTrue(tools.linediff(r.content, expected))
def testGET(self): expected = [ """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <join address="*" feed="http://testserver/restms/feed/commands"> </join> </restms> """, """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <join address="server.warn.*" feed="http://testserver/restms/feed/Announcements"> </join> </restms> """, """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <join address="*" feed="http://testserver/restms/feed/commands"> <header name="test header" value="for a command join" /> </join> </restms> """, """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <join address="events.*" feed="http://testserver/restms/feed/Announcements"> </join> </restms> """, """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <join address="*" feed="http://testserver/restms/feed/direct"> <header name="my very own header" value="for a join" /> <header name="plus another header" value="for the same join" /> </join> </restms> """ ] for i in range(1, len(expected) + 1): r = self.client.get('/restms/resource/join_%s' % i) self.assertEqual(r.status_code, 200) self.assertTrue(tools.linediff(r.content, expected[i - 1]))
def testGET(self): expected = ["""<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <join address="*" feed="http://testserver/restms/feed/commands"> </join> </restms> """, """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <join address="server.warn.*" feed="http://testserver/restms/feed/Announcements"> </join> </restms> """, """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <join address="*" feed="http://testserver/restms/feed/commands"> <header name="test header" value="for a command join" /> </join> </restms> """, """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <join address="events.*" feed="http://testserver/restms/feed/Announcements"> </join> </restms> """, """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <join address="*" feed="http://testserver/restms/feed/direct"> <header name="my very own header" value="for a join" /> <header name="plus another header" value="for the same join" /> </join> </restms> """ ] for i in range(1,len(expected) + 1): r = self.client.get('/restms/resource/join_%s' % i) self.assertEqual(r.status_code, 200) self.assertTrue(tools.linediff(r.content, expected[i-1]))
def testGET(self): """Simple feed GET test retrieving some feeds""" expected = { 'Announcements' : """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <feed name="Announcements" type="" title="Announcement channel." license="None" /> </restms> """, 'commands' : """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <feed name="commands" type="fifo" title="Command processing queue" license="GPL" /> </restms> """, 'direct' : """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <feed name="direct" type="direct" title="Direct feed" license="proprietary" /> </restms> """} for feed in expected: r = self.client.get('/restms/feed/%s' % feed) self.assertEqual(r.status_code, 200) self.assertTrue(tools.linediff(r.content, expected[feed]))
def testGET(self): """Simple pipe GET test retrieving some pipes""" expected = ["""<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <pipe type="" title="server #1 inbox" > <join href="http://testserver/restms/resource/join_1" type="" address="*" feed="http://testserver/restms/feed/commands" /> <join href="http://testserver/restms/resource/join_2" type="" address="server.warn.*" feed="http://testserver/restms/feed/Announcements" /> <message href="http://testserver/restms/resource/message_1" address="*.*" message_id="0815" /> <message href="http://testserver/restms/resource/message_2" address="next" message_id="4711" /> </pipe> </restms> """, """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <pipe type="" title="server #2 inbox" > <join href="http://testserver/restms/resource/join_3" type="" address="*" feed="http://testserver/restms/feed/commands" /> <message href="http://testserver/restms/resource/message_3" address="next" message_id="4711" /> </pipe> </restms> """, """<?xml version="1.0"?> <restms xmlns="http://www.restms.org/schema/restms"> <pipe type="direct" title="My Mailbox" > <join href="http://testserver/restms/resource/join_4" type="" address="events.*" feed="http://testserver/restms/feed/Announcements" /> <join href="http://testserver/restms/resource/join_5" type="" address="*" feed="http://testserver/restms/feed/direct" /> <message href="http://testserver/restms/resource/message_4" address="next" message_id="4711" /> <message href="http://testserver/restms/resource/message_5" address="trallalla" message_id="12345" /> </pipe> </restms> """] for i in range(1, len(expected) + 1): r = self.client.get('/restms/resource/pipe_%s' % i) self.assertEqual(r.status_code, 200) self.assertTrue(tools.linediff(r.content, expected[i-1]))