def test_record_update(self): create_class(ClassToUpdate, client=self.client) class_to_update = ClassToUpdate() class_to_update.int_field = 10 class_to_update.str_field = 'foobar' class_to_update.datetime_field = Arrow.utcnow() class_to_update.float_field = 12345.547 insert(class_to_update, client=self.client) self.assertIsNotNone(class_to_update.rid) r = load(class_to_update.rid, client=self.client) self.assertEqual(r._rid, class_to_update.rid) self.assertEqual(r.oRecordData[class_to_update._py_to_orient_field_mapping['str_field']], class_to_update.str_field) self.assertEqual(r.oRecordData[class_to_update._py_to_orient_field_mapping['int_field']], class_to_update.int_field) self.assertEqual(r.oRecordData[class_to_update._py_to_orient_field_mapping['datetime_field']], class_to_update.datetime_field.timestamp) self.assertEqual(r.oRecordData[class_to_update._py_to_orient_field_mapping['float_field']], class_to_update.float_field) class_to_update.int_field = 20 class_to_update.str_field = 'barfoo' class_to_update.datetime_field = Arrow.utcnow() class_to_update.float_field = None update(class_to_update, client=self.client) self.assertIsNotNone(class_to_update.rid) r = load(class_to_update.rid, client=self.client) self.assertEqual(r._rid, class_to_update.rid) self.assertEqual(r.oRecordData[class_to_update._py_to_orient_field_mapping['str_field']], class_to_update.str_field) self.assertEqual(r.oRecordData[class_to_update._py_to_orient_field_mapping['int_field']], class_to_update.int_field) self.assertEqual(r.oRecordData[class_to_update._py_to_orient_field_mapping['datetime_field']], class_to_update.datetime_field.timestamp) self.assertFalse(class_to_update._py_to_orient_field_mapping['float_field'] in r.oRecordData)
def test_from_orient(self): create_class(ClassToInsert, client=self.client) class_to_insert = ClassToInsert() class_to_insert.int_field = 10 class_to_insert.str_field = 'foobar' class_to_insert.datetime_field = Arrow.utcnow() class_to_insert.float_field = 12345.547 class_to_insert.bin_field = bytes('foo','utf-8') insert(class_to_insert, client=self.client) r = load(class_to_insert.rid, client=self.client) result = Model.from_orient(r) self.assertEqual(class_to_insert.__class__, result.__class__) self.assertEqual(result.rid, class_to_insert.rid) self.assertEqual(result.str_field, class_to_insert.str_field) self.assertEqual(result.int_field, class_to_insert.int_field) self.assertEqual(result.datetime_field, class_to_insert.datetime_field) self.assertEqual(result.float_field, class_to_insert.float_field) self.assertEqual(result.bin_field, class_to_insert.bin_field)
def test_load_record(self): create_class(ClassToLoad, client=self.client) class_to_insert = ClassToLoad() class_to_insert.int_field = 10 class_to_insert.str_field = 'foobar' class_to_insert.datetime_field = Arrow.utcnow() class_to_insert.float_field = 12345.547 class_to_insert.bin_field = bytes('foo', 'utf-8') insert(class_to_insert, client=self.client) self.assertIsNotNone(class_to_insert.rid) r = load(class_to_insert.rid, client=self.client) self.assertEqual(r._rid, class_to_insert.rid) self.assertEqual(r.oRecordData[class_to_insert._py_to_orient_field_mapping['str_field']], class_to_insert.str_field) self.assertEqual(r.oRecordData[class_to_insert._py_to_orient_field_mapping['int_field']], class_to_insert.int_field) self.assertEqual(r.oRecordData[class_to_insert._py_to_orient_field_mapping['datetime_field']], class_to_insert.datetime_field.timestamp) self.assertEqual(r.oRecordData[class_to_insert._py_to_orient_field_mapping['float_field']], class_to_insert.float_field) self.assertEqual(base64.b64decode(r.oRecordData[class_to_insert._py_to_orient_field_mapping['bin_field']].encode()), class_to_insert.bin_field)
def get(cls, rid, client=None): resp = load(rid, client=client) if resp.oRecordData == {}: return None return Model.from_orient(resp)