def test_get_value_auto_normal_field(self, monkeypatch): """Tests that get_value_auto() returns value for a normal field.""" instance = Mock(field1=123) model = Mock() mock_field_info = Mock(relations={}) monkeypatch.setattr( validate_utils, '_get_model_field_info', Mock(return_value=mock_field_info), ) data_combiner = DataCombiner(instance, None, model=model) assert data_combiner.get_value_auto('field1') == 123 assert data_combiner['field1'] == 123
def test_get_value_auto_to_many(self, monkeypatch): """Tests that get_value_auto() returns a list-like object for a to-many field.""" instance = Mock(field1=MagicMock()) instance.field1.all.return_value = [123] model = Mock() mock_field_info = Mock( relations={'field1': Mock(to_many=True)}, ) monkeypatch.setattr( validate_utils, '_get_model_field_info', Mock(return_value=mock_field_info), ) data_combiner = DataCombiner(instance, None, model=model) assert data_combiner.get_value_auto('field1') == [123] assert data_combiner['field1'] == [123]
def test_get_value_auto_instance(self, monkeypatch): """Tests that get_value_auto() returns the ID for a foreign key.""" subinstance = Mock() subinstance.id = 1234 instance = Mock(field1=subinstance) model = Mock() mock_field_info = Mock( relations={'field1': Mock(to_many=False)}, ) monkeypatch.setattr( validate_utils, '_get_model_field_info', Mock(return_value=mock_field_info), ) data_combiner = DataCombiner(instance, None, model=model) assert data_combiner.get_value_auto('field1') == str(subinstance.id) assert data_combiner['field1'] == str(subinstance.id)