Example #1
0
 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)
Example #2
0
  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)
Example #3
0
 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'])
Example #4
0
 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'))
Example #5
0
 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)
Example #6
0
  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)
Example #7
0
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)
Example #8
0
            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())
Example #9
0
 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)