def get_property_value(self, model): """Returns value of the given property of model Args: model: datastore_services.Model. Entity to validate. Returns: value. The value of the property of model. """ return job_utils.get_model_property(model, self._property_name)
def get_property_value(self, model): # type: (Any) -> Any # type: ignore[no-any-return] """Returns value of the given property of model Args: model: datastore_services.Model. Entity to validate. Returns: value. The value of the property of model. """ return job_utils.get_model_property( # type: ignore[no-untyped-call] model, self._property_name)
def yield_value_from_model(self, model): """Yields the value(s) of the property from the given model. If the property is repeated, all values are yielded. Otherwise, a single value is yielded. Args: model: *. A subclass of BaseModel. Yields: *. The value(s) of the property. Raises: TypeError. When the argument is not a model. """ if not isinstance(model, self._to_model_class()): raise TypeError('%r is not an instance of %s' % (model, self._model_kind)) value = job_utils.get_model_property(model, self._property_name) if self._is_repeated_property(): for item in value: yield item else: yield value
def test_get_property_from_bad_value(self): with self.assertRaisesRegexp(TypeError, 'not a model instance'): job_utils.get_model_property(123, 'prop')
def test_get_missing_property_from_datastore_model(self): model = FooModel() self.assertEqual(job_utils.get_model_property(model, 'prop'), None)
def test_get_property_from_datastore_model(self): model = FooModel(prop='abc') self.assertEqual(job_utils.get_model_property(model, 'prop'), 'abc')
def test_get_id_from_datastore_model(self): model = FooModel(id='123') self.assertEqual(job_utils.get_model_property(model, 'id'), '123')
def test_get_key_from_datastore_model(self): model = FooModel(id='123') self.assertEqual(job_utils.get_model_property(model, '__key__'), model.key)
def test_get_property_from_bad_value(self) -> None: with self.assertRaisesRegexp( TypeError, 'not a model instance'): # type: ignore[no-untyped-call] job_utils.get_model_property(123, 'prop') # type: ignore[arg-type]
def test_get_missing_property_from_cloud_datastore_entity(self): entity = cloud_datastore_types.Entity( key=cloud_datastore_types.Key('FooModel', '123', project='foo')) self.assertEqual(job_utils.get_model_property(entity, 'prop'), None)