def testSearchProductNormal3(self): productList = ["ProductA", "ProductB", "ProductC", "ProductD"] db = dataBaseModel() result = db.searchProducts("") self.assertEquals(result[1], dataBaseModel.SUCCESS) for elem in result[0]: self.assertTrue(elem.name in productList)
def testAddToFitList(self): baseModel = dataBaseModel() FitList.objects.all().delete() for i in range(4): response = baseModel.addToFitList(testDBModel.testUsersID[i], testDBModel.testProducts[i], i+1 ) queryset = FitList.objects.filter(Q(owner = testDBModel.testUsers[i]), Q(product = testDBModel.testProducts[i])) self.assertTrue(response == dataBaseModel.SUCCESS and queryset.count() == 1, "addTo FitList failed")
def testAddtoFitListWithBadProductName(self): baseModel = dataBaseModel() FitList.objects.all().delete() response = baseModel.addToFitList(testDBModel.testUsersID[0], 'bad product', 1) self.assertTrue(response == dataBaseModel.ERR_BAD_PRODUCT, " add non exist product to fit list")
def testGetTempProductWithBadUser(self): db = dataBaseModel() self.assertTrue( db.getTempProduct(100, '1')[1] == dataBaseModel.ERR_BAD_TOKEN, "Expect negative err code") self.assertTrue( db.getTempProduct(100, '1')[0] == None, "Expect negative err code")
def testReplaceProfilePic(self): db = dataBaseModel() db.addProfilePic(testDBModel.testUsersID[0], "newprofile.jpg") queryset1 = User.objects.filter(user_image="profile1.jpg") queryset2 = User.objects.filter(user_image="newprofile.jpg") self.assertTrue(queryset1.count() == 0 and queryset2.count() == 1, 'Unable to replace existing profile picture')
def testAddTempProduct(self): db = dataBaseModel() db.addTempProduct(testDBModel.testUsersID[0], 'testingtoken', 'testingoverlayol.jpg', 'glasses') queryset = TempProduct.objects.filter( Q(owner=testDBModel.testUsers[0]), Q(token='testingtoken')) self.assertTrue(queryset.count() == 1, 'Unable to add temp product')
def testRemoveCustomProductBadProduct(self): db = dataBaseModel() result = db.removeCustomProduct(testDBModel.testUsersID[0], testDBModel.testProducts[1].id) self.assertTrue( result == dataBaseModel.ERR_UNABLE_TO_REMOVE_CUSTOM_PRODUCT, "Able to remove custom product that doesn't belong to user")
def testRemoveFromFitListwithBadProduct(self): baseModel = dataBaseModel() response = baseModel.removeFromFitList(testDBModel.testUsersID[0], 'bad product', 1) self.assertTrue( response == dataBaseModel.ERR_UNABLE_TO_REMOVE_FROM_FITLIST, "remove non exist product from fit list")
def testSetPositionalConfig(self): db = dataBaseModel() db.setPositionalConfig('1', 1.0, 2.0, 3.0, 4.0) result = TempProduct.objects.get(token = '1') self.assertTrue(result.xoffset == 1.0, "Couldn't set xoffset") self.assertTrue(result.yoffset == 2.0, "Couldn't set yoffset") self.assertTrue(result.scale == 3.0, "Couldn't set scale") self.assertTrue(result.rotation == 4.0, "Couldn't set rotation")
def testGetFitList(self): baseModel = dataBaseModel() for i in range(4): response = baseModel.getFitList(testDBModel.testUsersID[i]) self.assertTrue( response[1] == dataBaseModel.SUCCESS and len(response[0]) > 0, "can's get the Fit List")
def testAddProduct(self): db = dataBaseModel() result = db.addProduct(testDBModel.testUsersID[3], "image.jpg", "overlayol.jpg", "glasses", "brand", "nameA", "www.url.com", 32, "testing description") self.assertTrue(result == dataBaseModel.SUCCESS, "Add product not returning success") queryset = Product.objects.filter(name="nameA") self.assertTrue(queryset.count() == 1, "Add product not adding product to database") queryset = Added.objects.filter(owner = testDBModel.testUsers[3]) self.assertTrue(queryset.count() == 1, "Add product not adding Added entry")
def testSetPositionalConfig(self): db = dataBaseModel() db.setPositionalConfig('1', 1.0, 2.0, 3.0, 4.0) result = TempProduct.objects.get(token='1') self.assertTrue(result.xoffset == 1.0, "Couldn't set xoffset") self.assertTrue(result.yoffset == 2.0, "Couldn't set yoffset") self.assertTrue(result.scale == 3.0, "Couldn't set scale") self.assertTrue(result.rotation == 4.0, "Couldn't set rotation")
def testAddProductBadPrice(self): db = dataBaseModel() result = db.addProduct(testDBModel.testUsersID[3], "image.jpg", "overlayol.jpg", "wrong category", "brand", "nameA", "www.url.com", "badprice", "testing description") self.assertTrue(result == dataBaseModel.ERR_UNABLE_TO_ADD_PRODUCT, "Add product not returning failure") queryset = Product.objects.filter(name="nameA") self.assertTrue(queryset.count() == 0, "Add product adding wrong product to database") queryset = Added.objects.filter(owner = testDBModel.testUsers[3]) self.assertTrue(queryset.count() == 0, "Add product adding wrong Added entry")
def testRemoveFromWishList(self): baseModel = dataBaseModel() from django.db.models import Q for i in range(4): response = baseModel.removeFromWishList(testDBModel.testUsersID[i], testDBModel.testProducts[i], i+1) queryset = WishList.objects.filter(Q(owner=testDBModel.testUsers[i]), Q(product=testDBModel.testProducts[i])) self.assertTrue(response == dataBaseModel.SUCCESS and queryset.count() == 0, "can not do removeFromWishList")
def testAddToWishList(self): baseModel = dataBaseModel() WishList.objects.all().delete() from django.db.models import Q for i in range(4): response = baseModel.addToWishList(testDBModel.testUsersID[i], testDBModel.testProducts[i], i+1) queryset = WishList.objects.filter(Q(owner=testDBModel.testUsers[i]), Q(product=testDBModel.testProducts[i])) self.assertTrue(response == dataBaseModel.SUCCESS and queryset.count() == 1, "addToWishList failed, can not add")
def testEditProductBadProductID(self): db = dataBaseModel() result = db.editProduct(testDBModel.testUsersID[0], "changed.jpg", "changedol.jpg", "glasses", "brand", "newproduct1", "randomurl", 24, "changed description", 100) self.assertTrue( result == dataBaseModel.ERR_UNABLE_TO_EDIT_CUSTOM_PRODUCT, "Did not prompt error on bad product id")
def testAddToFitListAlreadyExists(self): baseModel = dataBaseModel() FitList.objects.all().delete() for i in range(4): response = baseModel.addToFitList(testDBModel.testUsersID[i], testDBModel.testProducts[i], i+1 ) queryset = FitList.objects.filter(Q(owner = testDBModel.testUsers[i]), Q(product = testDBModel.testProducts[i])) self.assertTrue(response == dataBaseModel.SUCCESS and queryset.count() == 1, "addTo FitList failed") response = baseModel.addToFitList(testDBModel.testUsersID[i], testDBModel.testProducts[i], i+1 ) self.assertTrue(response == dataBaseModel.ERR_FITLIST_ALREADY_EXIST, "able to add duplicate item")
def testEditProductBadUserID(self): db = dataBaseModel() result = db.editProduct(100, "changed.jpg", "changedol.jpg", "glasses", "brand", "newproduct1", "randomurl", 24, "changed description", testDBModel.testProducts[0].id) self.assertTrue( result == dataBaseModel.ERR_UNABLE_TO_EDIT_CUSTOM_PRODUCT, "Unable to edit custom item")
def testGetTempProductWithBadToken(self): db = dataBaseModel() self.assertTrue( db.getTempProduct(testDBModel.testUsersID[0], 'a')[1] == dataBaseModel.ERR_BAD_TOKEN, "Expect negative err code") self.assertTrue( db.getTempProduct(testDBModel.testUsersID[0], 'a')[0] == None, "Expect negative err code")
def testGetDetailWithValidProductID(self): baseModel = dataBaseModel() for i in range(4): productDetail = baseModel.getDetail(testDBModel.testProducts[i], i+1) # pk starts from 1 self.assertTrue(productDetail != None, "getDetail failed, can not find the product") self.assertTrue(productDetail[0].category == testDBModel.testCategory[0], "getDetail failed, wrong category") self.assertTrue(productDetail[0].brand == "brand", "getDetail failed, wrong brand") self.assertTrue(productDetail[0].url == "url", "getDetail failed, wrong url") self.assertTrue(productDetail[0].photo == "photo", "getDetail failed, wrong photo") self.assertTrue(productDetail[0].price == 1.0, "getDetail failed, wrong price")
def testGetTempProduct(self): db = dataBaseModel() self.assertTrue( db.getTempProduct(testDBModel.testUsersID[0], '1')[1] == dataBaseModel.SUCCESS, "Failed to get temp product user 0") self.assertTrue( db.getTempProduct(testDBModel.testUsersID[0], '1')[0].overlay == testDBModel.testOverlay[0], "Failed to get temp product user 0")
def testEditProductOtherProductID(self): db = dataBaseModel() result = db.editProduct(testDBModel.testUsersID[0], "changed.jpg", "changedol.jpg", "glasses", "brand", "newproduct1", "randomurl", 24, "changed description", testDBModel.testProducts[1].id) self.assertTrue( result == dataBaseModel.ERR_UNABLE_TO_EDIT_CUSTOM_PRODUCT, "Able to edit other custom item")
def testEditProduct(self): db = dataBaseModel() result = db.editProduct(testDBModel.testUsersID[0], "changed.jpg", "changedol.jpg", "glasses", "brand", "newproduct1", "randomurl", 24, "changed description", testDBModel.testProducts[0].id) self.assertTrue(result == dataBaseModel.SUCCESS, "Unable to edit custom item") queryset = Product.objects.filter(name="newproduct1") self.assertTrue(queryset.count() == 1, "Edited name not updated")
def testAddProduct(self): db = dataBaseModel() result = db.addProduct(testDBModel.testUsersID[3], "image.jpg", "overlayol.jpg", "glasses", "brand", "nameA", "www.url.com", 32, "testing description") self.assertTrue(result == dataBaseModel.SUCCESS, "Add product not returning success") queryset = Product.objects.filter(name="nameA") self.assertTrue(queryset.count() == 1, "Add product not adding product to database") queryset = Added.objects.filter(owner=testDBModel.testUsers[3]) self.assertTrue(queryset.count() == 1, "Add product not adding Added entry")
def testAddToFitList(self): baseModel = dataBaseModel() FitList.objects.all().delete() for i in range(4): response = baseModel.addToFitList(testDBModel.testUsersID[i], testDBModel.testProducts[i], i + 1) queryset = FitList.objects.filter( Q(owner=testDBModel.testUsers[i]), Q(product=testDBModel.testProducts[i])) self.assertTrue( response == dataBaseModel.SUCCESS and queryset.count() == 1, "addTo FitList failed")
def testAddProductBadPrice(self): db = dataBaseModel() result = db.addProduct(testDBModel.testUsersID[3], "image.jpg", "overlayol.jpg", "wrong category", "brand", "nameA", "www.url.com", "badprice", "testing description") self.assertTrue(result == dataBaseModel.ERR_UNABLE_TO_ADD_PRODUCT, "Add product not returning failure") queryset = Product.objects.filter(name="nameA") self.assertTrue(queryset.count() == 0, "Add product adding wrong product to database") queryset = Added.objects.filter(owner=testDBModel.testUsers[3]) self.assertTrue(queryset.count() == 0, "Add product adding wrong Added entry")
def testAddToFitListAlreadyExists(self): baseModel = dataBaseModel() FitList.objects.all().delete() for i in range(4): response = baseModel.addToFitList(testDBModel.testUsersID[i], testDBModel.testProducts[i], i + 1) queryset = FitList.objects.filter( Q(owner=testDBModel.testUsers[i]), Q(product=testDBModel.testProducts[i])) self.assertTrue( response == dataBaseModel.SUCCESS and queryset.count() == 1, "addTo FitList failed") response = baseModel.addToFitList(testDBModel.testUsersID[i], testDBModel.testProducts[i], i + 1) self.assertTrue( response == dataBaseModel.ERR_FITLIST_ALREADY_EXIST, "able to add duplicate item")
def testGetFitListFromNonExistUser(self): baseModel = dataBaseModel() response = baseModel.getFitList(6) self.assertTrue(response[1] == dataBaseModel.ERR_BAD_USER and len(response[0]) == 0, "get fit list from a non exist user")
def testRemoveTempProduct(self): db = dataBaseModel() self.assertTrue( db.removeTempProduct( testDBModel.testUsersID[0])[0] == testDBModel.testOverlay[0], "Remove temp product not returning correct image path")
def testGetNumAddedBadUseID(self): db = dataBaseModel() result = db.getNumAdded(100) self.assertTrue(result == 0, "Wrong num of custom item added when invalid user id")
def testRemoveFromFitListwithBadProduct(self): baseModel = dataBaseModel() response = baseModel.removeFromFitList(testDBModel.testUsersID[0], 'bad product', 1 ) self.assertTrue(response == dataBaseModel.ERR_UNABLE_TO_REMOVE_FROM_FITLIST, "remove non exist product from fit list")
def testFindPositionalConfig(self): db = dataBaseModel() result = db.findPositionalConfig('1') self.assertTrue(result == (0.0, 0.0, 1.0, 0.0), "findPositionalConfig returning incorrect numbers")
def testGetUserInfo(self): db = dataBaseModel() result = db.getUserInfo(testDBModel.testUsersID[0]) self.assertTrue(result == testDBModel.testUsers[0], "Unable to get correct user info")
def testEditProductBadUserID(self): db = dataBaseModel() result = db.editProduct(100, "changed.jpg", "changedol.jpg","glasses", "brand", "newproduct1", "randomurl", 24, "changed description", testDBModel.testProducts[0].id) self.assertTrue(result == dataBaseModel.ERR_UNABLE_TO_EDIT_CUSTOM_PRODUCT, "Unable to edit custom item")
def testRemoveTempProductBadUserID(self): db = dataBaseModel() self.assertTrue(db.removeTempProduct(100) == [], "Remove temp product not returning empty image path")
def testGetUserInfoBadUserID(self): db = dataBaseModel() result = db.getUserInfo(100) self.assertTrue(result == "", "Unable to retrieve empty string on invalid user id")
def testEditProduct(self): db = dataBaseModel() result = db.editProduct(testDBModel.testUsersID[0], "changed.jpg", "changedol.jpg","glasses", "brand", "newproduct1", "randomurl", 24, "changed description", testDBModel.testProducts[0].id) self.assertTrue(result == dataBaseModel.SUCCESS, "Unable to edit custom item") queryset = Product.objects.filter(name="newproduct1") self.assertTrue(queryset.count() == 1, "Edited name not updated")
def testGetNumAdded(self): db = dataBaseModel() result = db.getNumAdded(testDBModel.testUsersID[0]) self.assertTrue(result == 1, "Unable to get correct num added custom item")
def testGetTempProductWithBadToken(self): db = dataBaseModel() self.assertTrue(db.getTempProduct(testDBModel.testUsersID[0], 'a')[1] == dataBaseModel.ERR_BAD_TOKEN, "Expect negative err code") self.assertTrue(db.getTempProduct(testDBModel.testUsersID[0], 'a')[0] == None, "Expect negative err code")
def testEditProductOtherProductID(self): db = dataBaseModel() result = db.editProduct(testDBModel.testUsersID[0], "changed.jpg", "changedol.jpg","glasses", "brand", "newproduct1", "randomurl", 24, "changed description", testDBModel.testProducts[1].id) self.assertTrue(result == dataBaseModel.ERR_UNABLE_TO_EDIT_CUSTOM_PRODUCT, "Able to edit other custom item")
def testRemoveTempProduct(self): db = dataBaseModel() self.assertTrue(db.removeTempProduct(testDBModel.testUsersID[0])[0] == testDBModel.testOverlay[0], "Remove temp product not returning correct image path")
def testEditProductBadProductID(self): db = dataBaseModel() result = db.editProduct(testDBModel.testUsersID[0], "changed.jpg", "changedol.jpg","glasses", "brand", "newproduct1", "randomurl", 24, "changed description", 100) self.assertTrue(result == dataBaseModel.ERR_UNABLE_TO_EDIT_CUSTOM_PRODUCT, "Did not prompt error on bad product id")
def testAddTempProduct(self): db = dataBaseModel() db.addTempProduct(testDBModel.testUsersID[0],'testingtoken', 'testingoverlayol.jpg', 'glasses') queryset = TempProduct.objects.filter(Q(owner = testDBModel.testUsers[0]), Q(token='testingtoken')) self.assertTrue(queryset.count() == 1, 'Unable to add temp product')
def testFindPositionalConfig(self): db = dataBaseModel() result = db.findPositionalConfig('1') self.assertTrue(result == (0.0,0.0,1.0,0.0), "findPositionalConfig returning incorrect numbers")
def testFindPositionalConfigBadToken(self): db = dataBaseModel() result = db.findPositionalConfig('100') self.assertTrue(result == None, "findPositionalConfig not returning None on bad tokens")
def testSearchProductWithBadName(self): db = dataBaseModel() result = db.searchProducts("AB") self.assertEquals(result[1], dataBaseModel.SUCCESS) self.assertEquals(len(result[0]), 0)
def testFindPositionalConfigBadToken(self): db = dataBaseModel() result = db.findPositionalConfig('100') self.assertTrue( result == None, "findPositionalConfig not returning None on bad tokens")
def testGetTempProduct(self): db = dataBaseModel() self.assertTrue(db.getTempProduct(testDBModel.testUsersID[0], '1')[1] == dataBaseModel.SUCCESS, "Failed to get temp product user 0") self.assertTrue(db.getTempProduct(testDBModel.testUsersID[0], '1')[0].overlay == testDBModel.testOverlay[0], "Failed to get temp product user 0")
def testGetFitList(self): baseModel = dataBaseModel() for i in range(4): response = baseModel.getFitList(testDBModel.testUsersID[i]) self.assertTrue(response[1] == dataBaseModel.SUCCESS and len(response[0]) > 0, "can's get the Fit List")
def testGetTempProductWithBadUser(self): db = dataBaseModel() self.assertTrue(db.getTempProduct(100, '1')[1] == dataBaseModel.ERR_BAD_TOKEN, "Expect negative err code") self.assertTrue(db.getTempProduct(100, '1')[0] == None, "Expect negative err code")
def testRemoveTempProductBadUserID(self): db = dataBaseModel() self.assertTrue( db.removeTempProduct(100) == [], "Remove temp product not returning empty image path")