def test_returns_modified_extras(self):
        extras = Extras([
            {
                'key': 'terms_of_use',
                'value': [{
                    'license_id': 'some-id',
                    'license_url': 'some-url',
                }]
            },
        ])

        expected_value = [{
            'license_id': 'license-id',
            'license_url': 'license-url',
            'license_type': 'license-mit',
        }]

        extras.update(
            'terms_of_use',
            expected_value,
        )

        expected_extras = [
            {
                'key':
                'terms_of_use',
                'value': [{
                    'license_id': 'license-id',
                    'license_url': 'license-url',
                    'license_type': 'license-mit',
                }]
            },
        ]

        self.assertEquals(expected_extras, extras.get())
    def upsert_on_empty_dict_list_works_as_expected(self):
        extras = Extras()

        expected_extras = [{
            'key': 'three',
            'value': 3,
        }]

        self.assertTrue(extras.update('three', 3, True))
        self.assertEquals(3, extras.value('three'))
        self.assertEquals(1, extras.len())

        self.assertEquals(expected_extras, extras.get())