Example #1
0
def test_model_builder_data_keys_with_special_characters():
    data = {
        'foo*bar': 'foobar',
        'baz/qux': 'bazqux',
    }
    birl = model_builder(data)
    assert birl.foo_bar == 'foobar'
    assert birl.baz_qux == 'bazqux'
def test_simple_preparer_lookup_data_with_object(simple_preparer, payload):
    obj = model_builder(payload)
    assert simple_preparer.lookup_data('', obj) == obj
    assert simple_preparer.lookup_data('type', obj) == obj.type
    assert simple_preparer.lookup_data('attributes.title',
                                       obj) == obj.attributes.title
    assert simple_preparer.lookup_data('relationships.author.data.id',
                                       obj) == obj.relationships.author.data.id
Example #3
0
def test_model_builder_class_name():
    data = {
        'foo': 'foo',
        'bar': 'bar',
    }
    birl = model_builder(data, class_name='Birl', recurse=False)
    assert birl.foo == 'foo'
    assert birl.bar == 'bar'
    assert type(birl).__name__ == 'Birl'
Example #4
0
def test_model_builder_custom_class():
    data = {
        'foo*bar': 'foobar',
        'baz/qux': 'bazqux',
    }
    cls = model_class_builder('Model', data)

    birl = model_builder(data, cls=cls)

    assert isinstance(birl, cls)
Example #5
0
def test_model_builder_ignore_private_attrs():
    data = {
        'foo': 'foo',
        '_bar': 'bar',
        '__nope': 'nope',
    }
    birl = model_builder(data)
    assert birl.foo == 'foo'
    assert birl._bar == 'bar'
    assert hasattr(birl, '__nope') is False
def test_simple_preparer_prepare(simple_preparer, payload):
    expected = {
        'type': 'articles',
        'id': '1',
        'title': 'JSON API paints my bikeshed!',
        'body': 'The shortest article. Ever.',
        'relationship_id': '42'
    }
    assert simple_preparer.prepare(payload) == expected
    assert simple_preparer.prepare(model_builder(payload)) == expected
Example #7
0
def test_model_builder_recurse_false():
    my_model = {'baz': 'baz', 'qux': 'qux'}
    data = {
        'foo': 'foo',
        'bar': 'bar',
        'my_model': my_model,
    }
    birl = model_builder(data, recurse=False)
    assert birl.foo == 'foo'
    assert birl.bar == 'bar'
    assert birl.my_model == my_model
def test_preparer_with_subpreparer_prepare(preparer_with_subpreparer, payload):
    expected = {
        'type': 'articles',
        'id': '1',
        'attrs': {
            'title': 'JSON API paints my bikeshed!',
            'body': 'The shortest article. Ever.'
        }
    }
    assert preparer_with_subpreparer.prepare(payload) == expected
    assert preparer_with_subpreparer.prepare(
        model_builder(payload)) == expected
Example #9
0
def test_model_builder_recurse():
    my_model = {'baz': 'baz', 'qux': 'qux'}
    data = {
        'foo': 'foo',
        'bar': 'bar',
        'my_model': my_model,
    }
    birl = model_builder(data)
    assert birl.foo == 'foo'
    assert birl.bar == 'bar'
    assert birl.my_model.baz == 'baz'
    assert birl.my_model.qux == 'qux'

    assert type(birl.my_model).__name__ == 'MyModel'
    assert type(birl.my_model) not in (Model, type(birl))
Example #10
0
def test_model_builder_recurse_iterable(iterable_class):
    models = iterable_class([{'baz': 'baz', 'qux': 'qux'}, 1, 2])
    data = {
        'foo': 'foo',
        'bar': 'bar',
        'models': models,
    }
    birl = model_builder(data)
    assert birl.foo == 'foo'
    assert birl.bar == 'bar'
    assert birl.models[0].baz == 'baz'
    assert birl.models[0].qux == 'qux'
    assert birl.models[1] == 1
    assert birl.models[2] == 2

    assert isinstance(birl.models[0], Model)
    assert type(birl.models[0]).__name__ == 'NamelessModel'
def test_preparer_with_collectionsubpreparer_prepare(
        preparer_with_collectionsubpreparer, payload):
    expected = {
        'type':
        'articles',
        'id':
        '1',
        'tag_list': [
            {
                'tag_name': 'tag-1'
            },
            {
                'tag_name': 'tag-2'
            },
            {
                'tag_name': 'tag-3'
            },
        ]
    }
    assert preparer_with_collectionsubpreparer.prepare(payload) == expected
    assert preparer_with_collectionsubpreparer.prepare(
        model_builder(payload)) == expected
Example #12
0
 def as_obj(self) -> Model:
     result = self.as_dict()
     return model_builder(result, class_name=self.response_name)
Example #13
0
 def as_obj(self):
     result = self.as_dict()
     return model_builder(result)
def test_simple_preparer_without_fields_prepare(simple_preparer_without_fields,
                                                payload):
    assert simple_preparer_without_fields.prepare(payload) == payload
    assert simple_preparer_without_fields.prepare(
        model_builder(payload)) == payload