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)
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)