Exemplo n.º 1
0
    def test_insert_product_element(self):
        """
        Test insert products element.
        :return:
        """
        data = get_categories_data_with_mock(self.fake_data_path, 'categories_short')

        Category.insert_data(data)

        nb_elements_before = Product.objects.count()

        with open(os.path.join(self.fake_data_path, '3222472887966.json'), 'r') as file:
            fake_data_product = file.read()
        with requests_mock.Mocker() as mock:
            mock.get(Product.get_element_api_url(
                self.product_id), text=fake_data_product)
            data = Product.get_api_data_element(self.product_id)

        # test create
        Product.insert_data(data)
        nb_elements_after = Product.objects.count()
        self.assertGreater(nb_elements_after, nb_elements_before)

        # test update
        Product.insert_data(data)
        new_nb_elements_after = Product.objects.count()
        self.assertEqual(new_nb_elements_after, nb_elements_after)
Exemplo n.º 2
0
    def get_categories(from_cache: bool = False):
        """
        method in charge of getting categories.
        :param from_cache: indicates if data should be recovered from cache or not
        :type from_cache: bool
        """

        data = Category.get_api_data_list(from_cache=from_cache)
        Category.insert_data(data)
Exemplo n.º 3
0
    def setUp(self):
        self.fake_data_path = os.path.join(
            os.path.dirname(__file__), 'fake_data')
        data = get_categories_data_with_mock(self.fake_data_path, 'categories_short')

        Category.insert_data(data)

        data = get_products_data_with_mock(self.fake_data_path, 'products', nb_files=3)

        Product.insert_data(data)
Exemplo n.º 4
0
    def test_insert_category_list(self):
        """
        Test insert category list.
        :return:
        """
        nb_elements_before = Category.objects.count()

        data = get_categories_data_with_mock(self.fake_data_path, 'categories_short')

        Category.insert_data(data)
        nb_elements_after = Category.objects.count()
        self.assertGreater(nb_elements_after, nb_elements_before)
Exemplo n.º 5
0
def get_categories_data_with_mock(fake_data_path: str, file_name: str):
    """
    Get categories data with mock.
    :param fake_data_path:
    :param file_name:
    :return:
    """
    with open(os.path.join(fake_data_path, '%s.json' % file_name),
              'r') as file:
        fake_data_categories = file.read()
    with requests_mock.Mocker() as mock:
        mock.get(Category.get_list_api_url(), text=fake_data_categories)
        data = Category.get_api_data_list()

    return data
Exemplo n.º 6
0
 def test_get_data_for_category_element(self):
     """
     Test data getters for category element.
     :return:
     """
     data = Category.get_api_data_element(self.category_id)
     self.assertIsNone(data)
Exemplo n.º 7
0
 def test_get_url_for_category_element(self):
     """
     Test url getters for category element.
     :return:
     """
     url = Category.get_element_api_url(element_id=self.category_id)
     self.assertIsNone(url)
Exemplo n.º 8
0
 def test_get_url_for_category_list(self):
     """
     Test url getters for category list.
     :return:
     """
     url = Category.get_list_api_url()
     self.assertIsNotNone(url)
Exemplo n.º 9
0
    def test_write_file_for_category_list(self):
        """
        Test data writer for category list.
        :return:
        """
        # file_path = os.path.join(settings.JSON_DIR_PATH, "%s_list.json" % Category._meta.model_name)

        data = get_categories_data_with_mock(self.fake_data_path, 'categories_short')
        file = Category.write_api_data(data)
        self.assertTrue(os.path.exists(file))
Exemplo n.º 10
0
    def test_insert_product_list(self):
        """
        Test insert product list.
        :return:
        """
        data = get_categories_data_with_mock(self.fake_data_path, 'categories_short')

        Category.insert_data(data)

        nb_elements_before = Product.objects.count()

        data = get_products_data_with_mock(self.fake_data_path, 'products', nb_files=3)
        # test create
        Product.insert_data(data)
        nb_elements_after = Product.objects.count()
        self.assertGreater(nb_elements_after, nb_elements_before)

        # test update
        Product.insert_data(data)
        new_nb_elements_after = Product.objects.count()
        self.assertEqual(new_nb_elements_after, nb_elements_after)
Exemplo n.º 11
0
    def test_insert_product_list_with_strict_mode(self):
        """
        Test insert products list with strict mode.
        :return:
        """
        data = get_categories_data_with_mock(self.fake_data_path, 'categories_short')

        Category.insert_data(data)

        nb_elements_before = Product.objects.count()

        data = get_products_data_with_mock(self.fake_data_path, 'products', nb_files=3)

        # test create
        Product.insert_data(data, strict_required_field_mode=True)
        nb_elements_after = Product.objects.count()
        self.assertGreater(nb_elements_after, nb_elements_before)

        # test update
        Product.insert_data(data)
        new_nb_elements_after = Product.objects.count()
        self.assertGreater(new_nb_elements_after, nb_elements_after)
Exemplo n.º 12
0
 def get_category_json_test_file():
     """
     Recover category json test file from OpenfoodFacts
     """
     Category.get_api_data_list(from_cache=False)