def test_repr(self):
     person = Person("Curie", "Marie", "Skłodowska")
     timestamp = "2019-11-14T14:31:39.629853"
     person._id = ObjectId("5dcd7273b35ba17779361c4e")
     person.created_time = datetime.fromisoformat(timestamp)
     value = f"_id='5dcd7273b35ba17779361c4e'," \
         "given='Marie',middle='Skłodowska'," \
         f"last_name='Curie',created_time='{timestamp}'"
     self.assertEqual(value, repr(person))
Example #2
0
    def find(self,
             given: Optional[str] = None,
             middle: Optional[str] = None,
             family: Optional[str] = None) -> Iterable:
        """ Initialize a Person """
        if not (given or middle or family):
            raise ValueError("all arguments are empty or None")
        query = {}
        if given is not None:
            query["given"] = given
        if middle is not None:
            query["middle"] = middle
        if family is not None:
            query["family"] = family

        for p in self.collection.find(query):
            person = Person(p["family"], p["given"], p["middle"])
            person._id = p["_id"]
            person.created_time = p["created_time"]
            yield person
Example #3
0
 def insert(self, person: Person):
     person._id = self.collection.insert_one(vars(person)).inserted_id