示例#1
0
 def test_delete_skills(self):
     """
     tests the storage.delete() method removes and commits obj to database
     for an object from the Skills class
     """
     # connect to MySQL database through MySQLdb and get initial count
     db = connect(host=ION_MYSQL_HOST,
                  user=ION_MYSQL_USER,
                  passwd=ION_MYSQL_PWD,
                  db=ION_MYSQL_DB)
     cur = db.cursor()
     cur.execute("""SELECT * FROM skills""")
     objs_for_count1 = cur.fetchall()
     # creates new instance of Skills
     new_obj = Skills()
     # tests that the new object is of type Skills
     self.assertIs(type(new_obj), Skills)
     # adds all attributes required for testing
     # (id should be set by primary key)
     # (created_at, updated_at should be set by datetime)
     new_obj.name = "test_name"
     # save the object with BaseModel save method
     # save method calls storage.new() and storage.save()
     new_obj.save()
     # closes connection to database and restarts connection with MySQLdb
     cur.close()
     db.close()
     db = connect(host=ION_MYSQL_HOST,
                  user=ION_MYSQL_USER,
                  passwd=ION_MYSQL_PWD,
                  db=ION_MYSQL_DB)
     cur = db.cursor()
     cur.execute("""SELECT * FROM skills""")
     objs_for_count2 = cur.fetchall()
     # tests that there is one more obj saved to skills table in db
     self.assertEqual(len(objs_for_count1) + 1, len(objs_for_count2))
     # delete the object with BaseModel delete method
     # delete instance method calls storage.delete() and storage.save()
     new_obj.delete()
     # closes connection to database and restarts connection with MySQLdb
     cur.close()
     db.close()
     db = connect(host=ION_MYSQL_HOST,
                  user=ION_MYSQL_USER,
                  passwd=ION_MYSQL_PWD,
                  db=ION_MYSQL_DB)
     cur = db.cursor()
     cur.execute("""SELECT * FROM skills""")
     objs_for_count3 = cur.fetchall()
     # tests that there is one less obj in skills table in db
     self.assertEqual(len(objs_for_count2) - 1, len(objs_for_count3))
     self.assertEqual(len(objs_for_count1), len(objs_for_count3))
     # closes the connection
     cur.close()
     db.close()
示例#2
0
 def test_all_skills_count(self):
     """
     tests all method retrieves all objects when class is Skills
     """
     # connect to MySQL database through MySQLdb and get initial count
     db = connect(host=ION_MYSQL_HOST,
                  user=ION_MYSQL_USER,
                  passwd=ION_MYSQL_PWD,
                  db=ION_MYSQL_DB)
     cur = db.cursor()
     cur.execute("""SELECT * FROM identities""")
     identity_objs = cur.fetchall()
     cur.execute("""SELECT * FROM profiles""")
     profile_objs = cur.fetchall()
     cur.execute("""SELECT * FROM skills""")
     skills_objs = cur.fetchall()
     total_count = len(identity_objs) + len(profile_objs) + len(skills_objs)
     total_skills_count = len(skills_objs)
     # call storage.all() method, both with and without class specified
     all_objs = storage.all()
     count1 = len(all_objs.keys())
     all_skills_objs = storage.all(Skills)
     skills_count1 = len(all_skills_objs.keys())
     # tests that counts from all method match current database
     self.assertEqual(total_count, count1)
     self.assertEqual(total_skills_count, skills_count1)
     # creates new Skills obj to test with
     new_obj = Skills()
     # adds all attributes required for testing
     # (id should be set by primary key)
     # (created_at, updated_at should be set by datetime)
     new_obj.name = "test_name"
     # saves new object to the database
     new_obj.save()
     # re-call storage.all() method
     all_objs = storage.all()
     count2 = len(all_objs.keys())
     all_skills_objs = storage.all(Skills)
     skills_count2 = len(all_skills_objs.keys())
     # tests that counts increased by 1
     self.assertEqual(count1 + 1, count2)
     self.assertEqual(skills_count1 + 1, skills_count2)
     # deletes new object from the database
     new_obj.delete()
     # re-call storage.all() method
     all_objs = storage.all()
     count3 = len(all_objs.keys())
     all_skills_objs = storage.all(Skills)
     skills_count3 = len(all_skills_objs.keys())
     # tests that count decreased by 1
     self.assertEqual(count2 - 1, count3)
     self.assertEqual(count1, count3)
     self.assertEqual(skills_count2 - 1, skills_count3)
     self.assertEqual(skills_count1, skills_count3)
示例#3
0
 def test_all_skills_dict(self):
     """
     tests return of all method when class is Skills
     """
     # connect to MySQL database through MySQLdb and get initial count
     db = connect(host=ION_MYSQL_HOST,
                  user=ION_MYSQL_USER,
                  passwd=ION_MYSQL_PWD,
                  db=ION_MYSQL_DB)
     cur = db.cursor()
     cur.execute("""SELECT * FROM skills""")
     skills_objs = cur.fetchall()
     total_skills_count = len(skills_objs)
     # call storage.all() method
     all_skills_objs = storage.all(Skills)
     skills_count1 = len(all_skills_objs.keys())
     # tests that all method returns same count of Skills objects
     self.assertEqual(total_skills_count, skills_count1)
     # tests that all method returns dictionary
     self.assertIsInstance(all_skills_objs, dict)
     # creates new Skills obj to test with
     new_obj = Skills()
     # adds all attributes required for testing
     # (id should be set by primary key)
     # (created_at, updated_at should be set by datetime)
     new_obj.name = "test_name"
     # saves new object to the database
     new_obj.save()
     # re-call storage.all() method and test that count increased by 1
     all_skills_objs = storage.all(Skills)
     skills_count2 = len(all_skills_objs.keys())
     self.assertEqual(skills_count1 + 1, skills_count2)
     # tests that newly created obj is in dictionary with correct key
     self.assertIsInstance(storage.all(), dict)
     dict_key = "{}.{}".format("Skills", new_obj.id)
     self.assertIn(dict_key, storage.all())
     # get obj attributes from stroage.all() dictionary using obj id
     # test that retrieved attributes match expected values
     obj_class = storage.all().get("Skills.{}".format(
         new_obj.id)).__class__.__name__
     self.assertEqual("Skills", obj_class)
     obj_name = storage.all().get("Skills.{}".format(new_obj.id)).name
     self.assertEqual("test_name", obj_name)
     # delete new object from the database
     new_obj.delete()
     # re-call storage.all() method and test that count decreased by 1
     all_skills_objs = storage.all(Skills)
     skills_count3 = len(all_skills_objs.keys())
     self.assertEqual(skills_count2 - 1, skills_count3)
     self.assertEqual(skills_count1, skills_count3)
     # tests that new object is no longer in return dictionary
     self.assertNotIn(dict_key, storage.all())
示例#4
0
 def test_delete_method(self, mock_storage):
     """
     tests that the delete() method inherited from BaseModel calls on
     storage.delete() to remove and commit the object from the database
     """
     # creates new instance of Skills
     new_obj = Skills()
     # adds name as required attribute for database
     # (id should be set by primary key)
     # (created_at, updated_at should be set by datetime)
     new_obj.name = "test_name"
     # saves to database before attempting to delete
     new_obj.save()
     self.assertTrue(mock_storage.new.called)
     # deletes new instance and tests if storage method deleted is called
     new_obj.delete()
     self.assertTrue(mock_storage.delete.called)