Esempio n. 1
0
    def test_apply_multiple_with_previous_values(self):
        # given:
        converter = _create_mock_string_converter()
        cell_conversion = ListElementCellConversion('staff.developers.name',
                                                    converter)

        # and:
        metadata = MetadataEntity()
        metadata.define_content('developers', [{'age': 32}, {'age': 23}])

        # when:
        cell_conversion.apply(metadata, 'John||Paul||George||Ringo')

        # then:
        developers = metadata.get_content('developers')
        self.assertEqual(4, len(developers))

        # and:
        expected_names = [
            'John - converted', 'Paul - converted', 'George - converted',
            'Ringo - converted'
        ]
        expected_ages = [32, 23, None, None]
        for index, developer in enumerate(developers):
            self.assertEqual(expected_names[index], developer.get('name'))
            self.assertEqual(expected_ages[index], developer.get('age'))
Esempio n. 2
0
    def test_define_content(self):
        # given:
        metadata = MetadataEntity()

        # when:
        metadata.define_content('user.name', 'Juan dela Cruz')
        metadata.define_content('user.age', 47)

        # then:
        user = metadata.get_content('user')
        self.assertIsNotNone(user)
        self.assertEqual('Juan dela Cruz', user.get('name'))
        self.assertEqual(47, user.get('age'))
    def test_apply(self):
        # given:
        int_converter = MagicMock('int_converter')
        int_converter.convert = lambda __: 27

        # and:
        cell_conversion = DirectCellConversion('profile.user.age', int_converter)

        # when:
        metadata = MetadataEntity()
        cell_conversion.apply(metadata, '27')

        # then:
        self.assertEqual(27, metadata.get_content('user.age'))
Esempio n. 4
0
    def test_apply_none_data(self):
        # given:
        converter = _create_mock_string_converter()
        cell_conversion = ListElementCellConversion('user.name', converter)

        # and:
        metadata = MetadataEntity(content={'user': [{'id': '65fd8'}]})

        # when:
        cell_conversion.apply(metadata, None)

        # then:
        list_element = metadata.get_content('user')[0]
        self.assertTrue('name' not in list_element.keys(),
                        '[name] should not be added to element.')
Esempio n. 5
0
    def test_apply_skips_none_data(self):
        # given:
        string_converter = StringConverter()
        cell_conversion = DirectCellConversion('product.id', string_converter)

        # when:
        metadata = MetadataEntity(
            content={'product': {
                'name': 'product name'
            }})
        cell_conversion.apply(metadata, None)

        # then:
        product = metadata.get_content('product')
        self.assertIsNotNone(product)
        self.assertTrue('id' not in product,
                        '[id] not expected to be in product field')
    def test_apply(self):
        # given:
        converter = _create_mock_string_converter()
        cell_conversion = IdentityCellConversion('product.product_id', converter)

        # and:
        metadata = MetadataEntity()

        # when:
        cell_conversion.apply(metadata, 'product_no_144')

        # then:
        expected_id = 'product_no_144 - converted'
        self.assertEqual(expected_id, metadata.object_id)

        # and: identity value should be in content
        self.assertEqual(expected_id, metadata.get_content('product_id'))
    def test_apply(self):
        # given:
        converter = _create_mock_string_converter()
        cell_conversion = FieldOfSingleElementListCellConversion('library.books.title', converter)

        # when:
        metadata = MetadataEntity()
        cell_conversion.apply(metadata, 'Harry Potter')

        # then:
        books = metadata.get_content('books')
        self.assertIsNotNone(books)
        self.assertEqual(1, len(books))

        # and:
        thing = books[0]
        self.assertEqual('Harry Potter - converted', thing.get('title'))
    def test_apply(self):
        # given:
        converter = _create_mock_string_converter()
        cell_conversion = ListElementCellConversion('stuff.list_of_things.name', converter)

        # when:
        metadata = MetadataEntity()
        cell_conversion.apply(metadata, 'sample')

        # then:
        list_of_things = metadata.get_content('list_of_things')
        self.assertIsNotNone(list_of_things)
        self.assertEqual(1, len(list_of_things))

        # and:
        thing = list_of_things[0]
        self.assertEqual('sample - converted', thing.get('name'))
    def test_apply_multiple(self):
        # given:
        converter = _create_mock_string_converter()
        cell_conversion = ListElementCellConversion('group.members.name', converter)

        # when:
        metadata = MetadataEntity()
        cell_conversion.apply(metadata, 'Juan||Pedro||Jane')

        # then:
        members = metadata.get_content('members')
        self.assertEqual(3, len(members))

        # and:
        expected_names = ['Juan - converted', 'Pedro - converted', 'Jane - converted']
        for member in members:
            member_name = member.get('name')
            self.assertIn(member_name, expected_names)
    def test_apply_previously_processed_field(self):
        # given:
        converter = _create_mock_string_converter()
        cell_conversion = ListElementCellConversion('shop.user.basket.product_name', converter)

        # and:
        metadata = MetadataEntity()
        metadata.define_content('user.basket', [{'quantity': 3}])

        # when:
        cell_conversion.apply(metadata, 'apple')

        # then:
        basket = metadata.get_content('user.basket')
        self.assertEqual(1, len(basket))

        # and:
        current_element = basket[0]
        self.assertEqual(3, current_element.get('quantity'))
        self.assertEqual('apple - converted', current_element.get('product_name'))
    def test_apply_multiple_value_field(self):
        # given:
        converter = ListConverter(base_converter=_create_mock_string_converter())
        cell_conversion = FieldOfSingleElementListCellConversion('library.books.authors', converter)

        # and:
        metadata = MetadataEntity(content={
            'books': [
                {'title': 'Once Upon a Time'}
            ]
        })

        # when:
        cell_conversion.apply(metadata, 'J dela Cruz||P Smith')

        # then:
        books = metadata.get_content('books')
        self.assertEqual(1, len(books))

        # and:
        book = books[0]
        self.assertEqual(['J dela Cruz - converted', 'P Smith - converted'], book.get('authors'))