Пример #1
0
    def test_create_or_modify_with_relationship_search(self, app):
        # Given
        offer = Offer.create_or_modify(
            {
                '__SEARCH_BY__': 'name',
                'name': 'foo',
                'type': 'bar'
            },
            with_add=True,
            with_flush=True)
        stock1 = Stock.create_or_modify({
            '__SEARCH_BY__': ['offer', 'price'],
            'offer': offer,
            'price': 2
        })

        # When
        stock2 = Stock.create_or_modify({
            '__SEARCH_BY__': ['offer', 'price'],
            'offer': offer,
            'price': 3
        })

        #Then
        assert offer.id != None
        assert offer.name == 'foo'
        assert offer.type == 'bar'
        assert stock1.offer.id == offer.id
        assert stock2.offer.id == offer.id
        assert stock1.id == None
        assert stock2.id == None
Пример #2
0
    def test_create_or_modify_with_relationships_search(self, app):
        # Given
        offer = Offer.create_or_modify(
            {
                '__SEARCH_BY__': 'name',
                'name': 'foo',
                'type': 'bar'
            },
            with_add=True,
            with_flush=True)
        tag = Tag.create_or_modify({
            '__SEARCH_BY__': 'label',
            'label': 'car'
        },
                                   with_add=True,
                                   with_flush=True)

        # When
        offer_tag = OfferTag.create_or_modify({
            '__SEARCH_BY__': ['offer', 'tag'],
            'offer': offer,
            'tag': tag
        })

        #Then
        assert offer.id != None
        assert offer.name == 'foo'
        assert offer.type == 'bar'
        assert tag.id != None
        assert tag.label == 'car'
        assert offer_tag.id == None
Пример #3
0
    def test_create_or_modify_with_primary_filter(self, app):
        # Given
        datum = {'name': 'foo', 'type': 'bar'}
        offer1 = Offer(**datum)
        ApiHandler.save(offer1)

        # When
        offer2 = Offer.create_or_modify({'id': offer1.humanizedId, **datum})

        # Then
        assert offer2.id == offer1.id
        assert offer2.name == datum['name']
Пример #4
0
    def test_create_or_modify_returns_modified_offer(self, app):
        # Given
        offer1 = Offer(name='foo', type='bar')
        ApiHandler.save(offer1)

        # When
        offer2 = Offer.create_or_modify({
            '__SEARCH_BY__': 'name',
            'name': 'foo',
            'type': 'bric'
        })

        # Then
        assert offer2.id == offer1.id
        assert offer2.name == offer1.name == 'foo'
        assert offer2.type == 'bric'
Пример #5
0
    def test_create_or_modify_with_flatten_nested_unique_existing_datum(
            self, app):
        # Given
        tag = Tag(label='bar')
        ApiHandler.save(tag)
        datum = {
            'name': 'foo',
            'offerTags.0.tag.label': 'bar',
            'type': 'bar',
        }

        # When
        offer = Offer.create_or_modify(datum)

        # Then
        for (key, value) in datum.items():
            if key.endswith('__SEARCH_BY__'):
                continue
            assert offer.get(key) == value
        assert offer.offerTags[0].tag.id == tag.id