class TestDBStorage(unittest.TestCase): """ Class to test the file storage method """ @classmethod def setUpClass(self): """setUpClass module""" storage._DBStorage__session.close() self.store = DBStorage() self.store.reload() @classmethod def tearDownClass(self): """tearDownClass module""" self.store._DBStorage__session.close() storage.reload() def test_all(self): """print alls objects""" self.assertEqual(len(self.store.all()), 0) new_obj = State() new_obj.name = 'California' self.store.new(new_obj) self.assertEqual(len(self.store.all()), 1) # Make all('classname') work without console def test_new(self): """New objects""" new_obj = State() new_obj.name = "Texas" new_obj.save() self.assertTrue(len(self.store.all()), 1) def test_save(self): """save objects""" self.store.reload() new_obj = State() new_obj.name = 'Washington' self.store.new(new_obj) self.store.save() self.assertEqual(len(self.store.all()), 4) def test_delete(self): new_obj = State() new_obj.name = "Michigan" self.store.new(new_obj) self.store.save() self.store.delete(new_obj) self.assertFalse(new_obj in self.store.all()) def test_reload(self): """reload datas objects""" new_obj = City() self.store.new(new_obj) self.store.reload() test_len = len(self.store.all()) self.assertEqual(test_len, 3) self.store.reload() for value in self.store.all().values(): self.assertIsInstance(value.created_at, datetime)
class TestDBStorage(unittest.TestCase): """Tests the DBStorage class""" def test_pep8_FileStorage(self): """Tests pep8 style""" style = pep8.StyleGuide(quiet=True) p = style.check_files(['models/engine/db_storage.py']) self.assertEqual(p.total_errors, 0, "fix pep8") @classmethod def setUpClass(cls): """set up for test""" """ environ['HBNB_ENV'] = 'test' environ['HBNB_MYSQL_USER'] = '******' environ['HBNB_MYSQL_PWD'] = 'hbnb_test_pwd' environ['HBNB_MYSQL_HOST'] = 'localhost' environ['HBNB_MYSQL_DB'] = 'hbnb_test_db' environ['HBNB_TYPE_STORAGE'] = 'db' """ pass @unittest.skipIf('HBNB_TYPE_STORAGE' not in environ or environ['HBNB_TYPE_STORAGE'] != 'db', 'These tests\ should only be used when storage type is db') def setUp(self): """Setup the class""" self.user = User() self.user.first_name = "Kev" self.user.last_name = "Yo" self.user.email = "*****@*****.**" self.user.password = "******" self.storage = DBStorage() self.storage.reload() def tearDownClass(): """ del environ['HBNB_ENV'] del environ['HBNB_MYSQL_USER'] del environ['HBNB_MYSQL_PWD'] del environ['HBNB_MYSQL_HOST'] del environ['HBNB_MYSQL_DB'] del environ['HBNB_TYPE_STORAGE'] """ pass @unittest.skipIf('HBNB_TYPE_STORAGE' not in environ or environ['HBNB_TYPE_STORAGE'] != 'db', 'These tests\ should only be used when storage type is db') def test_all(self): """ Tests db_storage all method to query objects in the database """ original_len = self.storage.all(User) self.storage.new(self.user) self.storage.save() new_len = self.storage.all(User) self.assertTrue(original_len != new_len) @unittest.skipIf('HBNB_TYPE_STORAGE' not in environ or environ['HBNB_TYPE_STORAGE'] != 'db', 'These tests\ should only be used when storage type is db') def test_new(self): """ Tests db_storage new method to add a new object""" original_len = self.storage.all(User) self.storage.new(self.user) self.storage.save() new_len = self.storage.all(User) self.assertTrue(original_len != new_len) @unittest.skipIf('HBNB_TYPE_STORAGE' not in environ or environ['HBNB_TYPE_STORAGE'] != 'db', 'These tests\ should only be used when storage type is db') def test_save(self): """ Tests db_storage save method to save the added object """ original_len = self.storage.all(User) self.storage.new(self.user) self.storage.save() new_len = self.storage.all(User) self.assertTrue(original_len != new_len) @unittest.skipIf('HBNB_TYPE_STORAGE' not in environ or environ['HBNB_TYPE_STORAGE'] != 'db', 'These tests\ should only be used when storage type is db') def test_delete(self): """ Tests db_storage delete method to delete an object form the db """ original_len = self.storage.all(User) self.storage.new(self.user) self.storage.save() self.storage.delete(self.user) new_len = self.storage.all(User) self.assertTrue(original_len == new_len) @unittest.skipIf('HBNB_TYPE_STORAGE' not in environ or environ['HBNB_TYPE_STORAGE'] != 'db', 'These tests\ should only be used when storage type is db') def test_reload(self): """Tests db_storage delete method""" pass """def test_reload(self):