X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fipypbx%2Ftests%2Ftest_http.py;fp=src%2Fipypbx%2Ftests%2Ftest_http.py;h=7434635c759e112d08ebcaad012caf42e9b48574;hb=2adc77e231fa2a7a097215b01a04b60f26bef878;hp=180b124c0f307286caf78be706aa696c68adfed3;hpb=c4c894f0578dfa9a3376aa3137f2139aa1bc5b6e;p=ipypbx diff --git a/src/ipypbx/tests/test_http.py b/src/ipypbx/tests/test_http.py index 180b124..7434635 100644 --- a/src/ipypbx/tests/test_http.py +++ b/src/ipypbx/tests/test_http.py @@ -18,6 +18,7 @@ import unittest from ipypbx import http from ipypbx.tests import support +from xml.etree import ElementTree as etree class TestHttpRequestParser(unittest.TestCase): @@ -103,6 +104,9 @@ class TestHttpRequestParser(unittest.TestCase): self.request.handle(line) def test_handle_body(self): + """ + HttpRequestParse.handleBody should parse variables from POST request. + """ self._run_lines( 'POST / HTTP/1.1', '', @@ -110,14 +114,20 @@ class TestHttpRequestParser(unittest.TestCase): self.assertEqual(self.request.data, {'foo': 'bar', 'qwe': 'asd'}) def test_handle_body_with_missing_values(self): + """ + Missing values should give empty results. + """ self._run_lines( 'POST / HTTP/1.1', '', 'foo=bar&qwe=') self.assertEqual(self.request.data, {'foo': 'bar', 'qwe': ''}) - def test_non_post_fails(self): + """ + We expect only POST requests from Freeswitch, for anything else we + get an error. + """ self.request.handle('GET / HTTP/1.1') self.request.handle('') self.assertRaises( @@ -125,6 +135,47 @@ class TestHttpRequestParser(unittest.TestCase): 'Only post requests work') -class TestFreeswitchConfigGenerator(support.InitDatabase, unittest.TestCase): - def test_foo(self): - print self.db +class TestFreeswitchConfigGenerator(unittest.TestCase): + def setUp(self): + self.generator = http.FreeswitchConfigGenerator() + + def test_can_handle(self): + self.generator.param_match = {'foo': 'bar'} + self.assertEqual(self.generator.canHandle({'foo': 'bar'}), True) + self.assertEqual(self.generator.canHandle({'foo': 'xxx'}), False) + self.assertEqual(self.generator.canHandle({'xxx': 'bar'}), False) + self.assertEqual( + self.generator.canHandle({'foo': 'bar', 'qwe': 'asd'}), True) + self.assertEqual(self.generator.canHandle({'qwe': 'asd'}), False) + + self.generator.param_match = {'foo': 'bar', 'baz': '123'} + self.assertEqual(self.generator.canHandle({'foo': 'bar'}), False) + self.assertEqual( + self.generator.canHandle({'foo': 'bar', 'baz': '123'}), True) + self.assertEqual( + self.generator.canHandle({'foo': 'bar', 'qwe': 'asd'}), False) + + def test_base_elements(self): + self.generator.param_match = {'section': 'foo'} + root_elt, section_elt = self.generator.baseElements + self.assertEqual( + etree.tostring(root_elt), + '
' + '') + self.assertEqual( + etree.tostring(section_elt), '
') + + def test_add_params(self): + foo_elt = etree.Element('foo') + self.assertEqual( + etree.tostring(self.generator.addParams(foo_elt, (('qwe', 'asd'),))), + '') + + + bar_elt = etree.Element('bar') + self.assertEqual( + etree.tostring( + self.generator.addParams(bar_elt, + (('qwe', 'asd'), ('zxc', '123')))), + '' + '')