def test_new_classes(self):
        """ check  new method is valid """
        obj = BaseModel(id='123')
        obj_key = 'BaseModel' + '.' + obj.id
        obj1 = User(id='01')
        obj1_key = 'User' + '.' + obj1.id
        obj2 = City(id='02')
        obj2_key = 'City' + '.' + obj2.id
        obj3 = Amenity(id='03')
        obj3_key = 'Amenity' + '.' + obj3.id
        obj4 = Place(id='04')
        obj4_key = 'Place' + '.' + obj4.id
        obj5 = Review(id='05')
        obj5_key = 'Review' + '.' + obj5.id
        obj6 = State(id='06')
        obj6_key = 'State' + '.' + obj6.id

        self.assertEqual(storage.all(), {})
        obj.id = 123
        storage.new(obj)
        storage.new(obj1)
        storage.new(obj2)
        storage.new(obj3)
        storage.new(obj4)
        storage.new(obj5)
        storage.new(obj6)
        self.assertEqual(obj, storage.all()[obj_key])
        self.assertEqual(obj1, storage.all()[obj1_key])
        self.assertEqual(obj2, storage.all()[obj2_key])
        self.assertEqual(obj3, storage.all()[obj3_key])
        self.assertEqual(obj4, storage.all()[obj4_key])
        self.assertEqual(obj5, storage.all()[obj5_key])
        self.assertEqual(obj6, storage.all()[obj6_key])
    def test_reload(self):
        """ Tests reload method """

        from json import dumps

        # Check if reloading without doing anything reloads the same thing
        old_dict = storage.all()
        storage.reload()
        new_dict = storage.all()
        self.assertEqual(old_dict.keys(), new_dict.keys())

        # Make new object and a dictionary for that object
        obj = BaseModel()
        obj.id = 1
        dict_dict = {"BaseModel.1": obj.to_dict()}
        obje_dict = {"BaseModel.1": obj}

        # Overwrite file.json so that it includes just this dictionary
        if os.path.exists("file.json"):
            os.remove("file.json")
        with open("file.json", 'w') as f:
            f.write(dumps(dict_dict))

        # Reload
        storage.reload()
        self.assertEqual(storage.all().keys(), obje_dict.keys())
 def test_init(self):
     """ testing init of attributes """
     BM = BaseModel()
     BM.id = 12
     BM_dict = {
         "created_at": "2021-02-16T15:53:02.772060",
         "updated_at": "2021-02-16T15:53:02.772085",
         "id": "d30aaea6-89e5-4381-b772-046fb7b452c7",
         "first_name": "Reginald"
     }
     BM_kwargs = BaseModel(**BM_dict)
     self.assertEqual(BM.id, 12)
     self.assertIsInstance(BM, BaseModel)
     self.assertIsNotNone(BM.created_at)
     self.assertIsNotNone(BM.updated_at)
     self.assertIn("created_at", BM.__dict__)
     self.assertIn("updated_at", BM.__dict__)
     self.assertIn("id", BM.__dict__)
     self.assertIsInstance(BM.created_at, datetime)
     self.assertIsInstance(BM.updated_at, datetime)
     self.assertEqual(BM_kwargs.id, "d30aaea6-89e5-4381-b772-046fb7b452c7")
     self.assertIsInstance(BM_kwargs, BaseModel)
     self.assertIsNotNone(BM.created_at)
     self.assertIsNotNone(BM.updated_at)
     self.assertIn("created_at", BM_kwargs.__dict__)
     self.assertIn("updated_at", BM_kwargs.__dict__)
     self.assertIn("id", BM_kwargs.__dict__)
     self.assertIsInstance(BM_kwargs.created_at, datetime)
     self.assertIsInstance(BM_kwargs.updated_at, datetime)
 def test_change_id(self):
     """
         tests when id is changed manually.
     """
     m1 = BaseModel()
     m2 = BaseModel()
     m1.id = m2.id
     self.assertEqual(m1.id, m2.id)
    def test_base_id(self):
        """
        basic tests id
        """

        test_model = BaseModel()
        self.assertIsNotNone(test_model.id)
        test_model.id = "1234"
        self.assertEqual("1234", test_model.id)
Exemple #6
0
    def test_new_method(self):
        """Test for the new method of FileStorage"""

        my_model = BaseModel()
        len1 = len(models.storage.all())
        my_model.id = 56
        models.storage.new(my_model)
        len2 = len(models.storage.all())
        self.assertTrue(len1 < len2)
 def test_str_return_new_id(self):
     """
         tests that str will update with an updated id.
     """
     m1 = BaseModel()
     class_name = "BaseModel"
     m1.id = "1"
     m1_dict = str(m1.__dict__)
     str_m1 = "[{}] (1) {}".format(class_name, m1_dict)
     self.assertEqual(str_m1, str(m1))
 def test_str_representation(self):
     dt = datetime.today()
     dt_repr = repr(dt)
     bm = BaseModel()
     bm.id = "123456"
     bm.created_at = bm.updated_at = dt
     bmstr = bm.__str__()
     self.assertIn("[BaseModel] (123456)", bmstr)
     self.assertIn("'id': '123456'", bmstr)
     self.assertIn("'created_at': " + dt_repr, bmstr)
     self.assertIn("'updated_at': " + dt_repr, bmstr)
 def test_base_model_uuid_wrong_format(self):
     """...
     ...
     ...
     """
     bm = BaseModel()
     bm.id = 'Monty Python'
     warn = 'badly formed hexadecimal UUID string'
     with self.assertRaises(ValueError) as msg:
         uuid.UUID(bm.id)
     self.assertEqual(warn, str(msg.exception))
Exemple #10
0
 def test_all_str(self):
     date_time = datetime.today()
     date_repr = repr(date_time)
     Bmodel = BaseModel()
     Bmodel.id = "456789123"
     Bmodel.created_at = Bmodel.updated_at = date_time
     Bmodel_str = Bmodel.__str__()
     self.assertIn("[BaseModel] (456789123)", Bmodel_str)
     self.assertIn("'id': '456789123'", Bmodel_str)
     self.assertIn("'created_at': " + date_repr, Bmodel_str)
     self.assertIn("'updated_at': " + date_repr, Bmodel_str)
Exemple #11
0
 def test_str(self):
     """Test __str___"""
     date1 = datetime.today()
     tester1 = BaseModel()
     tester1.id = 821983719274
     tester1.created_at = date1
     tester1.updated_at = date1
     testerstr = tester1.__str__()
     self.assertIn("[BaseModel] (821983719274)", testerstr)
     self.assertIn("'id': 821983719274", testerstr)
     self.assertIn("'created_at': " + repr(date1), testerstr)
     self.assertIn("'updated_at': " + repr(date1), testerstr)
Exemple #12
0
 def test_to_dict_output(self):
     dt = datetime.today()
     bm = BaseModel()
     bm.id = "123456"
     bm.created_at = bm.updated_at = dt
     tdict = {
         'id': '123456',
         '__class__': 'BaseModel',
         'created_at': dt.isoformat(),
         'updated_at': dt.isoformat()
     }
     self.assertDictEqual(bm.to_dict(), tdict)
Exemple #13
0
 def testto_dict(self):
     dt = datetime.today()
     Bmodel = BaseModel()
     Bmodel.id = "123"
     Bmodel.created_at = Bmodel.updated_at = dt
     todict = {
         "id": "123",
         "created_at": dt.isoformat(),
         "updated_at": dt.isoformat(),
         "__class__": "BaseModel"
     }
     self.assertDictEqual(Bmodel.to_dict(), todict)
Exemple #14
0
 def test_str_return(self):
     '''Check returns of his __str__ '''
     date = datetime.today()
     date_repr = repr(date)
     base = BaseModel()
     base.id = "123456"
     base.created_at = base.updated_at = date
     bmstr = base.__str__()
     self.assertIn("[BaseModel] (123456)", bmstr)
     self.assertIn("'id': '123456'", bmstr)
     self.assertIn("'created_at': " + date_repr, bmstr)
     self.assertIn("'updated_at': " + date_repr, bmstr)
Exemple #15
0
 def test_basestr(self):
     """ Test for str method """
     date1 = datetime.today()
     test1 = BaseModel()
     test1.id = 712456769374
     test1.created_at = date1
     test1.updated_at = date1
     testerstr = test1.__str__()
     self.assertIn("[BaseModel] (712456769374)", testerstr)
     self.assertIn("'id': 712456769374", testerstr)
     self.assertIn("'created_at': " + repr(date1), testerstr)
     self.assertIn("'updated_at': " + repr(date1), testerstr)
Exemple #16
0
 def test_savemethod(self):
     """This function tests the save method"""
     base1 = BaseModel()
     oldtime = base1.updated_at
     sleep(.5)
     base1.id = 98
     base1.save()
     newtime = base1.updated_at
     self.assertTrue(hasattr(base1, "id"))
     self.assertTrue(base1.id == 98)
     self.assertNotEqual(oldtime, newtime)
     with open("file.json", "r", encoding="utf-8") as content:
         self.assertTrue("\"id\": 98" in content.read())
 def test_todict(self):
     """ dict method """
     time = datetime.datetime.now()
     bm = BaseModel()
     bm.id = "7"
     bm.created_at = bm.updated_at = time
     newdict = {
         "id": "7",
         "created_at": time.isoformat(),
         "updated_at": time.isoformat(),
         "__class__": "BaseModel"
     }
     self.assertDictEqual(bm.to_dict(), newdict)
Exemple #18
0
    def test_id(self):
        """Task 3. BaseModel
        Tests public instance attribute `id`.
        """
        # Normal use:
        bm1 = BaseModel()
        test_default_id(self, bm1)

        # id is functionally unique for each instance
        bm2 = BaseModel()
        bm3 = BaseModel()
        self.assertNotEqual(bm1.id, bm2.id)
        self.assertNotEqual(bm2.id, bm3.id)

        # id is public attr, can be manually reassigned
        bm1.id = bm2.id
        self.assertEqual(bm1.id, bm2.id)

        # direct manual reassignment risks invalid UUID format
        bm3.id = '1234567890'
        UUIDv4_regex = ('^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-'
                        '[89ab][a-f0-9]{3}-[a-f0-9]{12}$')
        self.assertIsNone(re.match(UUIDv4_regex, bm3.id, re.IGNORECASE))
Exemple #19
0
 def test_for_save(self):
     """test for save"""
     b2 = BaseModel()
     time1 = b2.updated_at
     sleep(.5)
     b2.id = 12
     b2.save()
     time2 = b2.updated_at
     self.assertEqual(type(time2), type(datetime.now()))
     self.assertNotEqual(time1, time2)
     self.assertTrue(time1 < time2)
     self.assertTrue(b2.id == 12)
     self.assertTrue(hasattr(b2, "id"))
     with open("file.json") as f:
         self.assertTrue('"id": 12' in f.read())
Exemple #20
0
    def test_attrb(self):
        """test atttr"""

        bm = BaseModel()
        bm1 = BaseModel()
        self.assertRaises(AttributeError)
        self.assertTrue(isinstance(bm, BaseModel))
        bm.name = "bz"
        self.assertEqual(bm.name, "bz")
        bm.id = "1"
        self.assertEqual(bm.id, "1")
        self.assertTrue(hasattr(bm1, "created_at"))
        self.assertTrue(hasattr(bm1, "updated_at"))
        self.assertTrue(hasattr(bm1, "created_at"))
        self.assertNotEqual(bm.id, bm1.id)
        self.assertNotEqual(bm.id, bm1.id)
        self.assertNotEqual(bm.created_at, bm1.created_at)
        self.assertNotEqual(bm.updated_at, bm1.updated_at)
        self.assertTrue(isinstance(bm.created_at, datetime))
        self.assertTrue(isinstance(bm.updated_at, datetime))
        self.assertTrue(type(bm1.to_dict()), dict)
 def test_init(self):
     """  instantiation test """
     self.assertTrue(hasattr(self.base, "id"))
     self.assertTrue(hasattr(self.base, "created_at"))
     self.assertTrue(hasattr(self.base, "updated_at"))
     self.assertTrue(isinstance(self.base.created_at, datetime))
     self.assertTrue(isinstance(self.base.updated_at, datetime))
     b = BaseModel()
     b.name = "Holberton"
     b.my_number = 89
     b.id = 1
     self.assertTrue(hasattr(b, "id"))
     self.assertTrue(hasattr(b, "created_at"))
     self.assertTrue(hasattr(b, "updated_at"))
     self.assertTrue(hasattr(b, "name"))
     self.assertTrue(hasattr(b, "my_number"))
     self.assertEqual(b.name, "Holberton")
     self.assertEqual(b.my_number, 89)
     self.assertNotEqual(b.id, self.base.id)
     self.assertEqual(b.id, 1)
     self.assertTrue(os.path.exists("file.json"))
     test = BaseModel(**self.base.to_dict())
     self.assertEqual(test.id, self.base.id)
Exemple #22
0
 def test_base_model_change_id(self):
     a = BaseModel()
     a.id = 10
     self.assertEqual(a.id, 10)
Exemple #23
0
 def test_id_public(self):
     msj = "Id isn't public"
     my_model1 = BaseModel()
     my_model1.id = "HELLO"
     self.assertEqual(my_model1.id, "HELLO")