def parseRestaurants(self, response): sel = RestaurantSelector(response) restaurant = Restaurant() restaurant["url"] = response.url restaurant["name"] = sel.getName() restaurant["id"] = self.restaurantIDsGetter.getID("/" + response.url.split("/")[-1]) restaurant["deliveryTimeInMinutes"] = sel.getDeliveryTimeInMinutes() restaurant["minOrderPrice"] = sel.getMinOrderPrice() restaurant["deliveryCost"] = sel.getDeliveryCost() restaurant["payMethods"] = sel.getPayMethods() restaurant["menu"] = sel.getMenuCategories() restaurant["tagCategories"] = sel.getTagCategories() restaurant["averagePunctuation"] = sel.getAveragePunctuation() restaurant["quantityOfComments"] = sel.getQuantityOfComments() return restaurant
class ExceptionalDataTestCase(unittest.TestCase): def setUp(self): response = fakeResponseFromFile("examples/RedBoxExample", None) self.selector = RestaurantSelector(response) def tearDown(self): self.item = None def testMinOrderPriceIsZeroWhenRestaurantHasNotMinPrice(self): self.assertEquals(self.selector.getMinOrderPrice(), 0) def testHasNoTagsFromList(self): categoriesList = [ "Comida Colombiana", "Comida Vegetariana", "Ensaladas", "Sanduches", "Sopas", "Comida Saludable" ] hasTagsFromList = self.selector.hasTagsFromList(categoriesList) self.assertFalse(hasTagsFromList)
class NoCategoriesInDataTest(unittest.TestCase): def setUp(self): response = fakeResponseFromFile("examples/NoCategoriesExample", None) self.selector = RestaurantSelector(response) def tearDown(self): self.item = None def testGetMeanProductsPerCategoryWhenNoCategory(self): meanProductsPerCategory = self.selector.getMeanProductsPerCategory() self.assertEqual(meanProductsPerCategory, 0) def testGetCheapestProductPrice(self): cheapestPrice = self.selector.getCheapestPriceForProduct() self.assertEqual(cheapestPrice, 0) def testGetMostExpensiveProductPrice(self): MostExpensivePrice = self.selector.getMostExpensivePriceForProduct() self.assertEqual(MostExpensivePrice, 0)
class NoCategoriesInDataTest(unittest.TestCase): def setUp(self): response = fakeResponseFromFile("examples/NoCategoriesExample", None) self.selector = RestaurantSelector(response) def tearDown(self): self.item = None def testGetMeanProductsPerCategoryWhenNoCategory(self): meanProductsPerCategory = self.selector.getMeanProductsPerCategory() self.assertEqual(meanProductsPerCategory, 0) def testGetCheapestProductPrice(self): cheapestPrice = self.selector.getCheapestPriceForProduct() self.assertEqual(cheapestPrice, 0) def testGetMostExpensiveProductPrice(self): MostExpensivePrice = self.selector.getMostExpensivePriceForProduct() self.assertEqual(MostExpensivePrice, 0)
class ExceptionalDataTestCase(unittest.TestCase): def setUp(self): response = fakeResponseFromFile("examples/RedBoxExample", None) self.selector = RestaurantSelector(response) def tearDown(self): self.item = None def testMinOrderPriceIsZeroWhenRestaurantHasNotMinPrice(self): self.assertEquals(self.selector.getMinOrderPrice(), 0) def testHasNoTagsFromList(self): categoriesList = ["Comida Colombiana", "Comida Vegetariana", "Ensaladas", "Sanduches", "Sopas", "Comida Saludable"] hasTagsFromList = self.selector.hasTagsFromList(categoriesList) self.assertFalse(hasTagsFromList)
class MenuDataTestCase(unittest.TestCase): def setUp(self): response = fakeResponseFromFile("examples/HenrysExample", None) self.selector = RestaurantSelector(response) def tearDown(self): self.selector = None def testMenuIsAList(self): self.assertIsInstance(self.selector.getMenuCategories(), list, "menu is not a list object") def testMenuContainsAnyCategory(self): categoryNamesInMenu = [category["name"] for category in self.selector.getMenuCategories()] self.assertIn("Bebidas", categoryNamesInMenu, "menu does not contains Drinks Category") def testMenuContainsAlCategories(self): self.assertEqual(len(self.selector.getMenuCategories()), 10) def testGetProductIDs(self): category = self.selector.getMenuCategories()[1] expectedProductIDs = ["150710", "150711", "150712", "150713", "150714", "150715", "150716", "150717", "150718", "150719"] self.assertEqual(category["productIDs"], expectedProductIDs) def testGetTotalProductsOnMenu(self): numberOfProducts = self.selector.getNumberOfProducts() self.assertEqual(numberOfProducts, 80) def testGetMeanProductsPerCategory(self): meanProductsPerCategory = self.selector.getMeanProductsPerCategory() self.assertEquals(meanProductsPerCategory, 8)
class RestaurantBasicDataTestCase(unittest.TestCase): def setUp(self): response = fakeResponseFromFile("examples/HenrysExample", None) self.selector = RestaurantSelector(response) def tearDown(self): self.selector = None def testGetName(self): self.assertEquals(self.selector.getName(), "Henrys") def testGetDeliveryTimeInMinutes(self): self.assertEquals(self.selector.getDeliveryTimeInMinutes(), 45) def testGetMinOrderPrice(self): self.assertEquals(self.selector.getMinOrderPrice(), 12000) def testGetDeliveryCost(self): self.assertEqual(self.selector.getDeliveryCost(), "$3500.00") def testGetPayMethods(self): payMethods = [ "pago-efectivo", u"pago-debito", u"pago-credito", "pago-sodexo", "pago-sodexo" ] self.assertEquals(self.selector.getPayMethods(), payMethods) def testGetTagCategories(self): tagCategories = ["Hamburguesas", "Sanduches", "Perros Calientes"] self.assertEquals(self.selector.getTagCategories(), tagCategories) def testGetAveragePunctuation(self): self.assertEqual(self.selector.getAveragePunctuation(), 3) def testGetQuantityOfComments(self): self.assertEqual(self.selector.getQuantityOfComments(), 874) def testHasTagsFromList(self): categoriesList = [ "Comida Colombiana", "Comida Vegetariana", "Ensaladas", "Sanduches", "Sopas", "Comida Saludable" ] hasTagsFromList = self.selector.hasTagsFromList(categoriesList) self.assertTrue(hasTagsFromList)
class RestaurantBasicDataTestCase(unittest.TestCase): def setUp(self): response = fakeResponseFromFile("examples/HenrysExample", None) self.selector = RestaurantSelector(response) def tearDown(self): self.selector = None def testGetName(self): self.assertEquals(self.selector.getName(), "Henrys") def testGetDeliveryTimeInMinutes(self): self.assertEquals(self.selector.getDeliveryTimeInMinutes(), 45) def testGetMinOrderPrice(self): self.assertEquals(self.selector.getMinOrderPrice(), 12000) def testGetDeliveryCost(self): self.assertEqual(self.selector.getDeliveryCost(), "$3500.00") def testGetPayMethods(self): payMethods = ["pago-efectivo", u"pago-debito", u"pago-credito", "pago-sodexo", "pago-sodexo"] self.assertEquals(self.selector.getPayMethods(), payMethods) def testGetTagCategories(self): tagCategories = ["Hamburguesas", "Sanduches", "Perros Calientes"] self.assertEquals(self.selector.getTagCategories(), tagCategories) def testGetAveragePunctuation(self): self.assertEqual(self.selector.getAveragePunctuation(), 3) def testGetQuantityOfComments(self): self.assertEqual(self.selector.getQuantityOfComments(), 874) def testHasTagsFromList(self): categoriesList = ["Comida Colombiana", "Comida Vegetariana", "Ensaladas", "Sanduches", "Sopas", "Comida Saludable"] hasTagsFromList = self.selector.hasTagsFromList(categoriesList) self.assertTrue(hasTagsFromList)
class PayMethodsTest(unittest.TestCase): def setUp(self): response = fakeResponseFromFile("examples/HenrysExample", None) self.selector = RestaurantSelector(response) def tearDown(self): self.selector = None def testAcceptsCash(self): acceptsCash = self.selector.acceptsCash() self.assertTrue(acceptsCash) def testAcceptsCredit(self): acceptsCredit = self.selector.acceptsCredit() self.assertTrue(acceptsCredit) def testAcceptsDebit(self): acceptsDebit = self.selector.acceptsDebit() self.assertTrue(acceptsDebit) def testAcceptsSodexo(self): acceptsSodexo = self.selector.acceptsSodexo() self.assertTrue(acceptsSodexo)
class PayMethodsTest(unittest.TestCase): def setUp(self): response = fakeResponseFromFile("examples/HenrysExample", None) self.selector = RestaurantSelector(response) def tearDown(self): self.selector = None def testAcceptsCash(self): acceptsCash = self.selector.acceptsCash() self.assertTrue(acceptsCash) def testAcceptsCredit(self): acceptsCredit = self.selector.acceptsCredit() self.assertTrue(acceptsCredit) def testAcceptsDebit(self): acceptsDebit = self.selector.acceptsDebit() self.assertTrue(acceptsDebit) def testAcceptsSodexo(self): acceptsSodexo = self.selector.acceptsSodexo() self.assertTrue(acceptsSodexo)
class DataStatisticsTest(unittest.TestCase): def setUp(self): response = fakeResponseFromFile("examples/SmallDataEven", None) self.selector = RestaurantSelector(response) def tearDown(self): self.item = None def testGetCheapestProductPrice(self): cheapestPrice = self.selector.getCheapestPriceForProduct() self.assertEqual(cheapestPrice, 3000) def testGetMostExpensiveProductPrice(self): MostExpensivePrice = self.selector.getMostExpensivePriceForProduct() self.assertEqual(MostExpensivePrice, 3500) def testGetMedianOfPrices(self): median = self.selector.getMedianOfPrices() self.assertEqual(median, 3250) def testGetMeanOfPrices(self): mean = self.selector.getMeanOfPrices() self.assertEqual(mean, 3250)
class DataStatisticsTest(unittest.TestCase): def setUp(self): response = fakeResponseFromFile("examples/SmallDataEven", None) self.selector = RestaurantSelector(response) def tearDown(self): self.item = None def testGetCheapestProductPrice(self): cheapestPrice = self.selector.getCheapestPriceForProduct() self.assertEqual(cheapestPrice, 3000) def testGetMostExpensiveProductPrice(self): MostExpensivePrice = self.selector.getMostExpensivePriceForProduct() self.assertEqual(MostExpensivePrice, 3500) def testGetMedianOfPrices(self): median = self.selector.getMedianOfPrices() self.assertEqual(median, 3250) def testGetMeanOfPrices(self): mean = self.selector.getMeanOfPrices() self.assertEqual(mean, 3250)
class MenuDataTestCase(unittest.TestCase): def setUp(self): response = fakeResponseFromFile("examples/HenrysExample", None) self.selector = RestaurantSelector(response) def tearDown(self): self.selector = None def testMenuIsAList(self): self.assertIsInstance(self.selector.getMenuCategories(), list, "menu is not a list object") def testMenuContainsAnyCategory(self): categoryNamesInMenu = [ category["name"] for category in self.selector.getMenuCategories() ] self.assertIn("Bebidas", categoryNamesInMenu, "menu does not contains Drinks Category") def testMenuContainsAlCategories(self): self.assertEqual(len(self.selector.getMenuCategories()), 10) def testGetProductIDs(self): category = self.selector.getMenuCategories()[1] expectedProductIDs = [ "150710", "150711", "150712", "150713", "150714", "150715", "150716", "150717", "150718", "150719" ] self.assertEqual(category["productIDs"], expectedProductIDs) def testGetTotalProductsOnMenu(self): numberOfProducts = self.selector.getNumberOfProducts() self.assertEqual(numberOfProducts, 80) def testGetMeanProductsPerCategory(self): meanProductsPerCategory = self.selector.getMeanProductsPerCategory() self.assertEquals(meanProductsPerCategory, 8)
def setUp(self): response = fakeResponseFromFile("examples/SmallDataEven", None) self.selector = RestaurantSelector(response)
def setUp(self): response = fakeResponseFromFile("examples/HenrysExample", None) self.selector = RestaurantSelector(response)
def setUp(self): response = fakeResponseFromFile("examples/HenrysExample", None) self.selector = RestaurantSelector(response)
def parseRestaurants(self, response): sel = RestaurantSelector(response) restaurant = Restaurant() restaurant["url"] = response.url restaurant["name"] = sel.getName() restaurant["id"] = self.restaurantIDsGetter.getID( "/" + response.url.split("/")[-1]) restaurant["deliveryTimeInMinutes"] = sel.getDeliveryTimeInMinutes() restaurant["minOrderPrice"] = sel.getMinOrderPrice() restaurant["deliveryCost"] = sel.getDeliveryCost() restaurant["payMethods"] = sel.getPayMethods() restaurant["menu"] = sel.getMenuCategories() restaurant["tagCategories"] = sel.getTagCategories() restaurant["averagePunctuation"] = sel.getAveragePunctuation() restaurant["quantityOfComments"] = sel.getQuantityOfComments() return restaurant
def setUp(self): response = fakeResponseFromFile("examples/SmallDataEven", None) self.selector = RestaurantSelector(response)
def parseRestaurants(self, response): categoriesList = [ "Comida Colombiana", "Comida Vegetariana", "Ensaladas", "Sanduches", "Sopas", "Comida Saludable" ] sel = RestaurantSelector(response) restaurant = RestaurantCsv() restaurant["nombre"] = sel.getName() restaurant["id"] = self.restaurantIDsGetter.getID( "/" + response.url.split("/")[-1]) restaurant["pedido_minimo"] = sel.getMinOrderPrice() restaurant["tiempo_de_entrega"] = sel.getDeliveryTimeInMinutes() restaurant["numero_categorias"] = len(sel.getMenuCategories()) restaurant[ "promedio_productos_por_menu"] = sel.getMeanProductsPerCategory() restaurant["total_productos"] = sel.getNumberOfProducts() restaurant["menor_precio"] = sel.getCheapestPriceForProduct() restaurant["mayor_precio"] = sel.getMostExpensivePriceForProduct() restaurant["mediana_precios"] = sel.getMedianOfPrices() restaurant["promedio_precios"] = sel.getMeanOfPrices() restaurant["numero_comentarios"] = sel.getQuantityOfComments() restaurant["puntuacion"] = sel.getAveragePunctuation() restaurant["costo_domicilio"] = sel.getDeliveryCost() restaurant["acepta_efectivo"] = sel.acceptsCash() restaurant["acepta_credito"] = sel.acceptsCredit() restaurant["acepta_debito"] = sel.acceptsDebit() restaurant["acepta_sodexo"] = sel.acceptsSodexo() restaurant["posee_tags_buscados"] = sel.hasTagsFromList(categoriesList) return restaurant