def test_get_value_id_instance(self):
     """Tests getting a foreign key from an instance."""
     subinstance = Mock()
     subinstance.id = 1234
     instance = Mock(field1=subinstance)
     data_combiner = DataCombiner(instance, None)
     assert data_combiner.get_value_id('field1') == str(subinstance.id)
Exemple #2
0
    def validate(self, data):
        """Performs cross-field validation."""
        combiner = DataCombiner(self.instance, data)

        if {'global_headquarters', 'headquarter_type'} & data.keys():
            headquarter_type_id = combiner.get_value_id('headquarter_type')
            global_headquarters_id = combiner.get_value_id(
                'global_headquarters')
            if (headquarter_type_id is not None and UUID(headquarter_type_id)
                    == UUID(HeadquarterType.ghq.value.id)
                    and global_headquarters_id is not None):
                message = self.error_messages[
                    'subsidiary_cannot_be_a_global_headquarters']
                raise serializers.ValidationError({
                    'headquarter_type': message,
                })

        return data
 def test_get_value_id_value(self):
     """Tests getting a foreign key from update data."""
     subinstance = Mock()
     subinstance.id = 1234
     new_subinstance = Mock()
     new_subinstance.id = 456
     instance = Mock(field1=subinstance)
     data_combiner = DataCombiner(instance, {'field1': new_subinstance})
     assert data_combiner.get_value_id('field1') == str(new_subinstance.id)