Exemple #1
0
 def test_filter(self):
     doc = MockDocument(meta={'elements': 'ET'})
     doc.add_filter('zipcode', MockDocument(meta={'type': 'ZIP'}))
     doc.add_filter('IP', MockDocument(meta={'type': 'IP'}))
     r = self._make_one(doc)
     self.assertEqual(r.filter('zipcode'), 'specialized ZIP')
     self.assertEqual(r.filter('IP'), 'specialized IP')
     self.assertRaises(ValueError, r.filter, 'err')
Exemple #2
0
 def test_filter(self):
     doc = MockDocument(meta={'elements': 'ET'})
     doc.add_filter('zipcode', MockDocument(meta={'type': 'ZIP'}))
     doc.add_filter('IP', MockDocument(meta={'type': 'IP'}))
     r = self._make_one(doc)
     self.assertEqual(r.filter('zipcode'), 'specialized ZIP')
     self.assertEqual(r.filter('IP'), 'specialized IP')
     self.assertRaises(ValueError, r.filter, 'err')
Exemple #3
0
class TestLazyDocument(unittest.TestCase):
    def setUp(self):
        self.mock_sm = MockStateMachine()

        self.registered_d = MockDocument(
            meta={
                'type': 'T',
                'self': 'test://mock_resource/',
                'class': 'C1',
                'a': 'a',
                'x': 'x',
            },
            content={
                'b': 'b',
                'y': 'y'
            },
        )
        self.mock_sm.add_document(self.registered_d.self, self.registered_d)

        self.d = MockDocument(meta={
            'type': 'T',
            'self': 'test://mock_resource/',
            'a': 'aa',
        },
                              content={'b': 'bb'})

    def _get_target(self):
        from resty.documents import LazyDocument
        return LazyDocument

    def _make_one(self, doc):
        return self._get_target()(self.mock_sm, doc)

    def test_fast_accesss(self):
        ld = self._make_one(self.d)

        self.assertEqual(ld.meta.a, 'aa')
        self.assertEqual(ld.content.b, 'bb')

    def test_slow_accesss(self):
        ld = self._make_one(self.d)

        self.assertEqual(ld.meta.x, 'x')
        self.assertEqual(ld.content.y, 'y')

    def test_reload(self):
        ld = self._make_one(self.d)

        ld.meta.x  # Trigger data reload
        self.assertEqual(ld.meta.a, 'a')
        self.assertEqual(ld.content.b, 'b')

    def test_attr_error(self):
        ld = self._make_one(self.d)

        self.assertRaises(AttributeError, getattr, ld.meta, 'not_existing')
        self.assertRaises(AttributeError, getattr, ld.content, 'not_existing')

    def test_deferred_related(self):
        sentinel = object()
        self.registered_d.add_related('R', sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.related('R'), sentinel)

    def test_deferred_service(self):
        sentinel = object()
        self.registered_d.add_service('S', sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.service('S'), sentinel)

    def test_deferred_items(self):
        sentinel = object()
        self.registered_d.add_item(sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.items(), [sentinel])

    def test_deferred_page(self):
        sentinel = object()
        self.registered_d.add_page(1, sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.page(1), sentinel)

    def test_deferred_filter(self):
        sentinel = object()
        self.registered_d.add_filter('F', sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.filter('F'), sentinel)

    def test_fast_related(self):
        sentinel = object()
        self.d.add_related('R', sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.related('R'), sentinel)

    def test_fast_service(self):
        sentinel = object()
        self.d.add_service('S', sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.service('S'), sentinel)

    def test_fast_items(self):
        sentinel = object()
        self.d.add_item(sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.items(), [sentinel])

    def test_fast_page(self):
        sentinel = object()
        self.d.add_page(1, sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.page(1), sentinel)

    def test_fast_filter(self):
        sentinel = object()
        self.registered_d.add_filter('F', sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.filter('F'), sentinel)
Exemple #4
0
class TestLazyDocument(unittest.TestCase):

    def setUp(self):
        self.mock_sm = MockStateMachine()

        self.registered_d = MockDocument(
            meta={
                'type': 'T',
                'self': 'test://mock_resource/',
                'class': 'C1',
                'a': 'a', 'x': 'x',
            },
            content={'b': 'b', 'y': 'y'},
        )
        self.mock_sm.add_document(self.registered_d.self, self.registered_d)

        self.d = MockDocument(
            meta={
                'type': 'T', 'self': 'test://mock_resource/',
                'a': 'aa',
            },
            content={'b': 'bb'}
        )

    def _get_target(self):
        from resty.documents import LazyDocument
        return LazyDocument

    def _make_one(self, doc):
        return self._get_target()(self.mock_sm, doc)

    def test_fast_accesss(self):
        ld = self._make_one(self.d)

        self.assertEqual(ld.meta.a, 'aa')
        self.assertEqual(ld.content.b, 'bb')

    def test_slow_accesss(self):
        ld = self._make_one(self.d)

        self.assertEqual(ld.meta.x, 'x')
        self.assertEqual(ld.content.y, 'y')

    def test_reload(self):
        ld = self._make_one(self.d)

        ld.meta.x  # Trigger data reload
        self.assertEqual(ld.meta.a, 'a')
        self.assertEqual(ld.content.b, 'b')

    def test_attr_error(self):
        ld = self._make_one(self.d)

        self.assertRaises(AttributeError, getattr, ld.meta, 'not_existing')
        self.assertRaises(AttributeError, getattr, ld.content, 'not_existing')

    def test_deferred_related(self):
        sentinel = object()
        self.registered_d.add_related('R', sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.related('R'), sentinel)

    def test_deferred_service(self):
        sentinel = object()
        self.registered_d.add_service('S', sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.service('S'), sentinel)

    def test_deferred_items(self):
        sentinel = object()
        self.registered_d.add_item(sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.items(), [sentinel])

    def test_deferred_page(self):
        sentinel = object()
        self.registered_d.add_page(1, sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.page(1), sentinel)

    def test_deferred_filter(self):
        sentinel = object()
        self.registered_d.add_filter('F', sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.filter('F'), sentinel)

    def test_fast_related(self):
        sentinel = object()
        self.d.add_related('R', sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.related('R'), sentinel)

    def test_fast_service(self):
        sentinel = object()
        self.d.add_service('S', sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.service('S'), sentinel)

    def test_fast_items(self):
        sentinel = object()
        self.d.add_item(sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.items(), [sentinel])

    def test_fast_page(self):
        sentinel = object()
        self.d.add_page(1, sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.page(1), sentinel)

    def test_fast_filter(self):
        sentinel = object()
        self.registered_d.add_filter('F', sentinel)
        d = self._make_one(self.d)

        self.assertEqual(d.filter('F'), sentinel)