Esempio n. 1
0
 def setUp(self):
     self.url = "http://www.testme.com"
     self.data = dict(url=self.url)
     self.backend_cls = DefaultBackend
     self.response_cls = DefaultResponse
     self.backend = Backend(
         code_path='armstrong.apps.embeds.backends.default.DefaultBackend')
Esempio n. 2
0
class BackendModelTestCase(TestCase):
    def setUp(self):
        self.url = "http://www.testme.com"
        self.data = dict(url=self.url)
        self.backend_cls = DefaultBackend
        self.response_cls = DefaultResponse
        self.backend = Backend(
            code_path='armstrong.apps.embeds.backends.default.DefaultBackend')

    def test_empty_model_fails(self):
        with self.assertRaises(ImproperlyConfigured):
            Backend()

    def test_fake_model_code_path_fails(self):
        with self.assertRaises(ImproperlyConfigured):
            Backend(code_path='fake')

    def test_model_inits_properly(self):
        self.assertTrue(isinstance(self.backend._backend, self.backend_cls))

    def test_model_proxys_properly(self):
        for method_name in self.backend._proxy_to_backend:
            self.assertEqual(
                getattr(self.backend, method_name).im_self,
                self.backend._backend)

    def test_using_proxy_decorator(self):
        class Stub(self.backend_cls):
            proxy_me = proxy(lambda _: "made it here")
            but_not_me = lambda _: "unseen"

        self.backend._backend = Stub()
        self.backend._setup_backend_proxy_methods()

        self.assertEqual(self.backend.proxy_me(), "made it here")
        with self.assertRaises(AttributeError):
            self.backend.but_not_me()

    def test_model_calls_properly(self):
        response = self.backend.call(self.url)
        self.assertTrue(isinstance(response, self.response_cls))

    def test_model_wraps_data_properly(self):
        wrapped = self.backend.wrap_response_data(self.data)
        self.assertTrue(isinstance(wrapped, self.response_cls))
        self.assertDictEqual(wrapped._data, self.data)

    def test_wrapped_response_equals_original_response(self):
        response = self.backend.call(self.url)
        wrapped = self.backend.wrap_response_data(response._data)
        self.assertDictEqual(response._data, wrapped._data)