def test_getSingleMenu(self): recipeExpected = {'ingredients':['apples', 'bananas', 'pears']} recipeMock = Mock(**{'to_json.return_value': recipeExpected}) recipeFactoryMock = Mock(**{'from_html.return_value': recipeMock}) clientMock = Client(**self.attrs) clientMock.request = MagicMock(return_value='<html></html>') crawler = Crawler(clientMock) crawler.recipe_factory = recipeFactoryMock recipe = crawler.getSingleMenu('/test/path') expected = recipe.to_json() self.assertEqual(recipeExpected, expected) clientMock.request.assert_called_with('/test/path') recipeFactoryMock.from_html.assert_called_with('<html></html>') recipeFactoryMock.to_json.assert_called()
def test_getMenuPaths(self): htmlFixture = """ <div class="menu-recipes "> <a href="/mina-sidor/recept/1">Receipt 1</a> </div> <div class="menu-recipes "> <a href="/mina-sidor/recept/2">Receipt 2</a> </div> <div class="menu-recipes "> <a href="/mina-sidor/recept/3">Receipt 3</a> </div> """ clientMock = Client(**self.attrs) clientMock.request = MagicMock(return_value=htmlFixture) crawler = Crawler(clientMock) paths = crawler.getMenuPaths() expected = ['/mina-sidor/recept/1','/mina-sidor/recept/2','/mina-sidor/recept/3'] self.assertEqual(paths, expected)