def test_delete(self): """Test delete method.""" r = RestifyObject.create(self.connection, self.database_name, self.collection_name, self.fixture_data) obj_id = r.id r.delete() deleted_obj = RestifyObject.get_by_id(self.connection, self.database_name, self.collection_name, obj_id) self.assertFalse(deleted_obj)
def test_get_by_id(self): """Test get_by_id method.""" objs = [] for fixture_data in self.plenty_fixture_data: r = RestifyObject.create(self.connection, self.database_name, self.collection_name, fixture_data) objs.append(r) obj = RestifyObject.get_by_id(self.connection, self.database_name, self.collection_name, objs[0].id) self.assertTrue(obj) self.assertEqual(obj.to_dict(), objs[0].to_dict()) obj = RestifyObject.get_by_id(self.connection, self.database_name, self.collection_name, ObjectId()) self.assertFalse(obj)
def test_to_dict(self): """Test to_dict bound method.""" r = RestifyObject.create(self.connection, self.database_name, self.collection_name, self.fixture_data) self.assertTrue(isinstance(r.to_dict(), dict)) self.assertEqual(r.to_dict()['name'], self.fixture_data['name']) self.assertEqual(r.to_dict()['age'], self.fixture_data['age'])
def test_created_attributes(self): """Test created restify object attributes.""" r = RestifyObject.create(self.connection, self.database_name, self.collection_name, self.fixture_data) self.assertTrue(hasattr(r, 'createdAt')) self.assertTrue(hasattr(r, 'id')) self.assertTrue(hasattr(r, 'name')) self.assertTrue(hasattr(r, 'age'))
def setUp(self): self.connection = Connection() self.database_name = 'classtest' self.collection_name = 'restifycollection' self.plenty_fixture_data = [ {'name': "Jesse", 'age': 21}, {'name': "Mikko", 'age': 20}, {'name': "Jhelo", 'age': 21}, ] self.plenty_fixture_objects = [] for fixture_data in self.plenty_fixture_data: obj = RestifyObject.create(self.connection, self.database_name, self.collection_name, fixture_data) self.plenty_fixture_objects.append(obj)
def test_update(self): """Test update method.""" r = RestifyObject.create(self.connection, self.database_name, self.collection_name, self.fixture_data) # To use $inc modifier r.update({'$inc': { 'age': 1 }}) self.assertEqual(r.age, self.fixture_data['age'] + 1) # To use $set modifier (possible conflict with updatedAt) new_name = 'new Jesse' r.update({'$set': {'name': new_name}}) self.assertEqual(r.name, new_name) self.assertTrue(r.updatedAt) # and again just for the kicks new_name = 'and Jesse' r.update({'$set': {'name': new_name}}) self.assertEqual(r.name, new_name) self.assertTrue(r.updatedAt)
def api_object(class_name, object_id): obj = RestifyObject.get_by_id(db, db_name, class_name, object_id) if obj: if request.method == "GET": return jsonify(obj.to_dict()) elif request.method == "PUT": obj.update(request.json) return jsonify(obj.to_dict()) elif request.method == "DELETE": obj.delete() return "" else: return abort(405) else: return abort(404)
try: query_object = json.loads(query_object) except Exception, e: return exceptions.BadRequest(e) collection = RestifyCollection.query(db, db_name, class_name, spec=query_object) else: collection = RestifyCollection.query(db, db_name, class_name) return jsonify(collection.to_dict()) elif request.method == "POST": if request.json.get("createdAt"): return exceptions.BadRequest("createdAt is a reserved keyword") if request.json.get("updatedAt"): return exceptions.BadRequest("updatedAt is a reserved keyword") data = request.json obj = RestifyObject.create(db, db_name, class_name, request.json) return jsonify(obj.to_dict()) else: return abort(405) @app.route("/classes/<class_name>/<object_id>", methods=["GET", "PUT", "DELETE"]) def api_object(class_name, object_id): obj = RestifyObject.get_by_id(db, db_name, class_name, object_id) if obj: if request.method == "GET": return jsonify(obj.to_dict())
def test_create(self): """Test creation of restify object.""" r = RestifyObject.create(self.connection, self.database_name, self.collection_name, self.fixture_data) self.assertTrue(r)