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)
Exemple #17
0
 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)
Exemple #19
0
 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