def mark_complete(self, item_id: str) -> ToDoItem:
     query: dict = {"_id": ObjectId(item_id)}
     new_status: dict = {
         "$set": {
             "status": "Done",
             "last_modified": str(datetime.now())
         }
     }
     return ToDoItem.from_json(
         self._collection.find_one_and_update(
             query, new_status, return_document=ReturnDocument.AFTER))
Exemplo n.º 2
0
    def test_get_from_json(self):
        test_object: dict = ToDoItem.new_item_as_dict(
            "Testing static constructor method")

        collection = MongoClient().db.collection
        collection.insert_one(test_object)
        returned_object = collection.find_one(
            {'title': 'Testing static constructor method'})

        object_to_test: ToDoItem = ToDoItem.from_json(returned_object)

        assert isinstance(object_to_test.item_id, str)
        assert "Testing static constructor method" == object_to_test.title
        assert "To Do" == object_to_test.status
        assert isinstance(object_to_test.last_modified, datetime)
 def delete_item_by_id(self, item_id: str) -> ToDoItem:
     return ToDoItem.from_json(
         self._collection.find_one_and_delete({"_id": ObjectId(item_id)}))
 def get_item(self, item_id: str) -> ToDoItem:
     return ToDoItem.from_json(
         self._collection.find_one({"_id": ObjectId(item_id)}))
 def get_items(self) -> List[ToDoItem]:
     return list(
         map(lambda doc: ToDoItem.from_json(doc), self._collection.find()))  # pylint:disable=unnecessary-lambda