def test_add_takes_first_matching_sc_product(self, mock_add_movie, mock_find_product, *mocks): user = User(email="*****@*****.**", password="******", username="******") mock_find_product.return_value = [ Product(title="SomeTitle", id="12345", type=ProductType.MOVIE), Product(title="SomeTitle2", id="67890", type=ProductType.MOVIE), ] remote = RemoteCollectionStore(user=user) piece = FixtureList.piece_list[0] # WHEN remote.add(piece) # THEN mock_add_movie.assert_called_once_with(list_id=mock.ANY, product_id="12345")
def test_should_find_all_list_items(self): sc_list = next(self.service.find_list(title="DONOTCHANGE_list_with_items", list_type=ListType.MOVIE)) item_list = list(self.service.list_item_list(sc_list=sc_list)) self.assertEqual(Product(id="373249", title="Izo", type=ProductType.MOVIE), item_list[0].product) self.assertEqual("a description", item_list[0].description) # We retrieved more than one page self.assertCountGreater(item_list, 30)
def test_add_fail_to_add_piece_to_sc(self, mock_add_movie, mock_find_product, *mocks): user = User(email="*****@*****.**", password="******", username="******") mock_find_product.return_value = [ Product(title="SomeTitle", id="12345", type=ProductType.MOVIE), ] mock_add_movie.return_value = None remote = RemoteCollectionStore(user=user) piece = FixtureList.piece_list[0] # WHEN result = remote.add(piece) # THEN self.assertFalse(result) self.assertTrue(mock_add_movie.called)
def test_should_add_piece_to_sc_list(self, mock_add_movie, mock_find_product, *mocks): # GIVEN user = User(email="*****@*****.**", password="******", username="******") mock_find_product.return_value = [ Product(title="SomeTitle", id="12345", type=ProductType.MOVIE), ] remote = RemoteCollectionStore(user=user) piece_1 = FixtureList.piece_list[0] piece_2 = FixtureList.piece_list[1] # WHEN self.assertTrue(remote.add(piece_1)) self.assertTrue(remote.add(piece_2)) # THEN self.assertEqual(2, mock_add_movie.call_count)
def test_remote_collection_creates_list_if_not_present( self, mock_add_movie, mock_find_product, mock_create_list, *mocks): user = User(email="*****@*****.**", password="******", username="******") mock_find_product.return_value = [ Product(title="SomeTitle", id="12345", type=ProductType.MOVIE), ] mock_create_list.return_value = ScList(name="a List", path="/liste/aList/123ListId", type=ListType.MOVIE) piece = FixtureList.piece_list[0] # WHEN remote = RemoteCollectionStore(user=user, movie_collection_title="A movie List") result = remote.add(piece) # THEN self.assertTrue(result) mock_create_list.assert_called_once_with(name="A movie List", list_type=ListType.MOVIE) mock_add_movie.assert_called_once_with(list_id="123ListId", product_id="12345")
def test_remote_collection_adds_to_specified_list(self, mock_add_movie, mock_find_product, mock_find_list, *mocks): user = User(email="*****@*****.**", password="******", username="******") mock_find_product.return_value = [ Product(title="SomeTitle", id="12345", type=ProductType.MOVIE), ] mock_find_list.return_value = iter([ ScList(name="a List", path="/liste/aList/aListId", type=ListType.MOVIE) ]) piece = FixtureList.piece_list[0] # WHEN remote = RemoteCollectionStore(user=user) result = remote.add(piece) # THEN self.assertTrue(result) self.assertTrue(mock_find_list.called) mock_add_movie.assert_called_once_with(list_id="aListId", product_id="12345")
def product_from_url(url: str, title: str) -> Product: m = re.search(".*/(.*)/.*/(.*)", url) return Product(type=ProductType(m.group(1)), title=title, id=m.group(2))
def test_find_list_item_on_second_page(self): sc_list = next(self.service.find_list(title='DONOTCHANGE_list_with_items', list_type=ListType.MOVIE)) list_item = self.service.find_list_item(sclist=sc_list, product_id='467126') self.assertEqual(Product(id='467126', title='Dead Man', type=ProductType.MOVIE), list_item.product)
def test_find_product_filtering(self): products = ProductService().find_product("The Big", ProductType.SERIE) unexpected = Product(type=ProductType.MOVIE, title="The Big Lebowski (1998)", id="454350") self.assertNotIn(unexpected, products)
def test_find_product_no_filter(self): products = ProductService().find_product("The Big") expected = Product(type=ProductType.MOVIE, title="The Big Lebowski (1998)", id="454350") self.assertIn(expected, products)