Exemplo n.º 1
0
    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")
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
    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")
Exemplo n.º 6
0
    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")
Exemplo n.º 7
0
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))
Exemplo n.º 8
0
    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)
Exemplo n.º 9
0
 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)
Exemplo n.º 10
0
 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)