Exemple #1
0
    def test_filters(self):
        self.login()
        ProductFactory(id=1, name="A1")
        ProductFactory(id=2,
                       name="A2",
                       company=CompanyFactory(name="PrefixB2"))
        ProductFactory(id=3,
                       name="A3",
                       company=CompanyFactory(official_name="B3Suffix"))
        ProductFactory(id=4,
                       name="A4",
                       company=CompanyFactory(common_name="PefixB4Suffix"))

        response = self.client.get("{}?q={}".format(self.url, "A1"))
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json(),
                         self._get_expected_result([('1', 'A1')]))

        response = self.client.get("{}?q={}".format(self.url, "B2"))
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json(),
                         self._get_expected_result([('2', 'A2')]))

        response = self.client.get("{}?q={}".format(self.url, "B3"))
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json(),
                         self._get_expected_result([('3', 'A3')]))

        response = self.client.get("{}?q={}".format(self.url, "B4"))
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json(),
                         self._get_expected_result([('4', 'A4')]))
Exemple #2
0
 def test_filled(self):
     products = CompanyFactory.create_batch(100)
     page = self.app.get(self.url, user=self.user)
     # self.assertTrue("1 z 4" in page)
     self.assertTrue(str(products[-1]) in page)
     page2 = page.click("Następne")
     page2.click("Poprzednie")
Exemple #3
0
    def test_should_return_200_when_one_comand_in_brand_and_product(self):
        c1 = CompanyFactory(
            plCapital=100,
            plWorkers=0,
            plRnD=100,
            plRegistered=100,
            plNotGlobEnt=100,
            description="TEST",
            sources="TEST|BBBB",
            verified=True,
            is_friend=True,
            plCapital_notes="AAA",
            plWorkers_notes="BBB",
            plRnD_notes="CCC",
            plRegistered_notes="DDD",
            plNotGlobEnt_notes="EEE",
        )

        p = ProductFactory.create(code=5900049011829, company=c1, brand__company=c1)
        response = self.json_request(self.url + "?device_id=TEST-DEVICE-ID&code=" + str(p.code))
        self.assertEqual(200, response.status_code, response.content)
        self.maxDiff = None
        self.assertEqual(
            {
                'altText': None,
                'card_type': 'type_white',
                'code': '5900049011829',
                'description': 'TEST',
                'donate': {
                    'show_button': True,
                    'title': 'Potrzebujemy 1 zł',
                    'url': 'https://klubjagiellonski.pl/zbiorka/wspieraj-aplikacje-pola/',
                },
                'friend_text': 'To jest przyjaciel Poli',
                'is_friend': True,
                'name': 'company_official_125',
                'plCapital': 100,
                'plCapital_notes': 'AAA',
                'plNotGlobEnt': 100,
                'plNotGlobEnt_notes': 'EEE',
                'plRegistered': 100,
                'plRegistered_notes': 'DDD',
                'plRnD': 100,
                'plRnD_notes': 'CCC',
                'plScore': 70,
                'plWorkers': 0,
                'plWorkers_notes': 'BBB',
                'product_id': p.pk,
                'report_button_text': 'Zgłoś',
                'report_button_type': 'type_white',
                'report_text': 'Zgłoś jeśli posiadasz bardziej aktualne dane na temat tego produktu',
                'sources': {'TEST': 'BBBB'},
            },
            json.loads(response.content),
        )
Exemple #4
0
 def test_should_return_200_when_polish_and_known_product(self):
     c = CompanyFactory(
         plCapital=100,
         plWorkers=0,
         plRnD=100,
         plRegistered=100,
         plNotGlobEnt=100,
         description="TEST",
         sources="TEST|BBBB",
         verified=True,
         is_friend=True,
         plCapital_notes="AAA",
         plWorkers_notes="BBB",
         plRnD_notes="CCC",
         plRegistered_notes="DDD",
         plNotGlobEnt_notes="EEE",
     )
     p = ProductFactory.create(code=5900049011829, company=c, brand=None)
     response = self.json_request(self.url + "?device_id=TEST-DEVICE-ID&code=" + str(p.code))
     self.assertEqual(200, response.status_code, response.content)
     self.maxDiff = None
     self.assertEqual(
         {
             "product_id": p.id,
             "code": "5900049011829",
             "name": c.official_name,
             "card_type": "type_white",
             "plScore": 70,
             "altText": None,
             "plCapital": 100,
             "plCapital_notes": "AAA",
             "plWorkers": 0,
             "plWorkers_notes": "BBB",
             "plRnD": 100,
             "plRnD_notes": "CCC",
             "plRegistered": 100,
             "plRegistered_notes": "DDD",
             "plNotGlobEnt": 100,
             "plNotGlobEnt_notes": "EEE",
             "report_text": "Zg\u0142o\u015b je\u015bli posiadasz bardziej aktualne dane na temat tego produktu",
             "report_button_text": "Zg\u0142o\u015b",
             "report_button_type": "type_white",
             "is_friend": True,
             "friend_text": "To jest przyjaciel Poli",
             "description": "TEST",
             "sources": {"TEST": "BBBB"},
             "donate": {
                 "show_button": True,
                 "url": "https://klubjagiellonski.pl/zbiorka/wspieraj-aplikacje-pola/",
                 "title": "Potrzebujemy 1 zł",
             },
         },
         json.loads(response.content),
     )
    def test_code_with_multiple_company(self):
        current_ean = TEST_EAN13
        company1 = CompanyFactory.create(name='test-company1', description='test-description')
        company2 = CompanyFactory.create(name='test-company2', description='test-description')

        product = ProductFactory.create(code=current_ean, company=company1, brand__company=company2)

        with mock.patch("pola.logic.get_by_code", return_value=product):
            response = get_result_from_code(current_ean)
        # TODO: Add support for multiple companies in this response
        expected_response = (
            {
                'altText': None,
                'card_type': 'type_grey',
                'code': '5900084231145',
                'description': 'test-description',
                'is_friend': False,
                'name': company1.official_name,
                'plCapital': None,
                'plCapital_notes': None,
                'plNotGlobEnt': None,
                'plNotGlobEnt_notes': None,
                'plRegistered': None,
                'plRegistered_notes': None,
                'plRnD': None,
                'plRnD_notes': None,
                'plScore': None,
                'plWorkers': None,
                'plWorkers_notes': None,
                'product_id': product.id,
                'report_button_text': 'Zgłoś',
                'report_button_type': 'type_white',
                'report_text': ('Zgłoś jeśli posiadasz bardziej aktualne dane na temat tego produktu'),
                'sources': {},
            },
            {"was_590": True, "was_plScore": False, "was_verified": False},
            product,
        )
        self.maxDiff = None
        self.assertEqual(expected_response[0], response[0])
        self.assertEqual(expected_response, response)
 def test_example_file(self):
     CompanyFactory(nip="1234566789")
     CompanyFactory(nip="7220002329")
     out = StringIO()
     call_command('import_brands', EXAMPLE_FILE, "1234566789", interactive=False, stdout=out)
     self.assertIn(
         'Successfully created brand Pilos \n'
         'Company with nip 7010399415 does not exist. Script will create a new company with name: '
         'Mazowiecka Sp.Mlecz. nip: 7010399415\n'
         'Successfully created product Jogurt pitny 1,5%, czerwona pomarańcza\n'
         'Successfully created product Jogurt pitny 1,5%, żurawina\n'
         'Product with name Serek twarogowy plastry, z ziołami has multiple ean codes: '
         '20387754, 20980368. Script will create/update multiple products, one for each code.\n'
         'Successfully created product Serek twarogowy plastry, z ziołami\n'
         'Successfully created product Serek twarogowy plastry, z ziołami\n'
         'Processed 3 products successful.',
         strip_ansi_escape_sequence(out.getvalue()).strip(),
     )
     self.assertTrue(Company.objects.filter(nip="7010399415", name="Mazowiecka Sp.Mlecz.").exists())
     self.assertTrue(Company.objects.filter(nip="7220002329").exists())
     self.assertEqual(4, Product.objects.filter(code__in=["20268190", "20268176", "20387754", "20980368"]).count())
     self.assertTrue(Brand.objects.filter(common_name="Pilos").exists())
Exemple #7
0
class TestCompanyUpdateWeb(WebTestMixin, TestCase):
    def setUp(self):
        super().setUp()
        self.instance = CompanyFactory(name="company_name")
        self.url = reverse('company:edit', kwargs={'pk': self.instance.pk})
        self.user = StaffFactory()

    def test_form_success(self):
        page = self.app.get(self.url, user=self.user)
        page.form['official_name'] = "New name"
        page.form['commit_desc'] = "Commit description"
        page = page.form.submit()

        self.assertRedirects(page, self.instance.get_absolute_url())
        self.instance.refresh_from_db()
        versions = Version.objects.get_for_object(self.instance)
        self.assertEqual(versions[0].revision.comment, "Commit description")
        self.assertEqual(versions[0].revision.user, self.user)
        self.assertEqual(self.instance.official_name, "New name")

    @override_settings(LANGUAGE_CODE='en-EN')
    def test_form_commit_desc_required(self):
        page = self.app.get(self.url, user=self.user)
        page.form['official_name'] = "New name"
        page = page.form.submit()

        self.assertContains(page, "This field is required.")

        page.form['commit_desc'] = "AAA"
        page = page.form.submit()

        self.assertRedirects(page, self.instance.get_absolute_url())

    @override_settings(LANGUAGE_CODE='en-EN')
    def test_form_readonly_fields(self):
        page = self.app.get(self.url, user=self.user)
        self.assertEqual(page.form['name'].attrs['disabled'], 'true')

        page.form['name'] = "789789789"
        page.form['commit_desc'] = "Commit desc"
        page = page.form.submit()

        self.assertRedirects(page, self.instance.get_absolute_url())
        self.instance.refresh_from_db()
        self.assertEqual(self.instance.name, "company_name")
Exemple #8
0
 def test_should_return_200_when_polish_and_known_product(self):
     c = CompanyFactory.create(
         plCapital=100,
         plWorkers=0,
         plRnD=100,
         plRegistered=100,
         plNotGlobEnt=100,
         description="KOTEK",
         sources="KOTEK|BBBB",
         verified=True,
         is_friend=True,
         plCapital_notes="AA",
         plWorkers_notes="BBB",
         plRnD_notes="CCC",
         plRegistered_notes="DDD",
         plNotGlobEnt_notes="EEEE",
     )
     p = ProductFactory.create(code=5900049011829, company=c, brand=None)
     response = self.json_request(self.url + "?device_id=TEST-DEVICE-ID&code=" + str(p.code))
     self.assertEqual(200, response.status_code)
Exemple #9
0
    def test_increment_company_query_counter(self, get_by_code_mock):
        c = CompanyFactory()
        p = ProductFactory(code=self.code, company=c)
        get_by_code_mock.return_value = p

        self.assertEqual(c.query_count, 0)
        self.client.get(self.url, {'device_id': 123})

        c.refresh_from_db()
        self.assertEqual(c.query_count, 1)

        self.client.get(self.url, {'device_id': 123})

        c.refresh_from_db()
        self.assertEqual(c.query_count, 2)
Exemple #10
0
    def setUp(self):
        self.aem_admin = UserFactory.create(group=AemGroupFactory.create(
            slug_field=settings.AEM_ADMIN_SLUG_FIELD,
            linked_group__name=settings.AEM_ADMIN_LINKED_GROUP_NAME,
            can_add_permission_slugs=settings.
            AEM_ADMIN_CAN_ADD_USER_PERMISSIONS,
            client_permissions=settings.AEM_ADMIN_CLIENT_PERMISSIONS,
            customer_permissions=settings.AEM_ADMIN_CUSTOMER_PERMISSIONS,
            company_permissions=settings.AEM_ADMIN_COMPANY_PERMISSIONS))

        self.aem_employee = UserFactory.create(group=AemGroupFactory.create(
            slug_field=settings.AEM_EMPLOYEE_SLUG_FIELD,
            linked_group__name=settings.AEM_EMPLOYEE_LINKED_GROUP_NAME,
            can_add_permission_slugs=settings.
            AEM_EMPLOYEE_CAN_ADD_USER_PERMISSIONS,
            client_permissions=settings.AEM_EMPLOYEE_CLIENT_PERMISSIONS,
            customer_permissions=settings.AEM_EMPLOYEE_CUSTOMER_PERMISSIONS,
            company_permissions=settings.AEM_EMPLOYEE_COMPANY_PERMISSIONS))

        client_company = CompanyFactory.create()

        self.aem_customer_super_user = UserFactory.create(
            company=client_company,
            group=AemGroupFactory.create(
                slug_field=settings.AEM_CUSTOMER_SUPER_USER_SLUG_FIELD,
                linked_group__name=settings.
                AEM_CUSTOMER_SUPER_USER_LINKED_GROUP_NAME,
                can_add_permission_slugs=settings.
                AEM_CUSTOMER_SUPER_USER_CAN_ADD_USER_PERMISSIONS,
                client_permissions=settings.
                AEM_CUSTOMER_SUPER_USER_CLIENT_PERMISSIONS,
                customer_permissions=settings.
                AEM_CUSTOMER_SUPER_USER_CUSTOMER_PERMISSIONS,
                company_permissions=settings.
                AEM_CUSTOMER_SUPER_USER_COMPANY_PERMISSIONS))

        self.aem_customer_admin = UserFactory.create(
            company=client_company,
            group=AemGroupFactory.create(
                slug_field=settings.AEM_CUSTOMER_ADMIN_SLUG_FIELD,
                linked_group__name=settings.
                AEM_CUSTOMER_ADMIN_LINKED_GROUP_NAME,
                can_add_permission_slugs=settings.
                AEM_CUSTOMER_ADMIN_CAN_ADD_USER_PERMISSIONS,
                client_permissions=settings.
                AEM_CUSTOMER_ADMIN_CLIENT_PERMISSIONS,
                customer_permissions=settings.
                AEM_CUSTOMER_ADMIN_CUSTOMER_PERMISSIONS,
                company_permissions=settings.
                AEM_CUSTOMER_ADMIN_COMPANY_PERMISSIONS))

        self.aem_customer_user = UserFactory.create(
            company=client_company,
            group=AemGroupFactory.create(
                slug_field=settings.AEM_CUSTOMER_USER_SLUG_FIELD,
                linked_group__name=settings.
                AEM_CUSTOMER_USER_LINKED_GROUP_NAME,
                can_add_permission_slugs=settings.
                AEM_CUSTOMER_USER_CAN_ADD_USER_PERMISSIONS,
                client_permissions=settings.
                AEM_CUSTOMER_USER_CLIENT_PERMISSIONS,
                customer_permissions=settings.
                AEM_CUSTOMER_USER_CUSTOMER_PERMISSIONS,
                company_permissions=settings.
                AEM_CUSTOMER_USER_COMPANY_PERMISSIONS))
Exemple #11
0
 def setUp(self):
     super().setUp()
     self.instance = ProductFactory(code="123")
     self.company = CompanyFactory()
     self.url = reverse('product:edit', args=[self.instance.code])
Exemple #12
0
 def setUp(self):
     super().setUp()
     self.company = CompanyFactory()
Exemple #13
0
 def setUp(self):
     super().setUp()
     self.instance = CompanyFactory(name="company_name")
     self.url = reverse('company:edit', kwargs={'pk': self.instance.pk})
     self.user = StaffFactory()
Exemple #14
0
 def setUp(self):
     super().setUp()
     self.instance = CompanyFactory()
 def test_empty_file(self):
     CompanyFactory(nip="1234566789")
     out = StringIO()
     with NamedTemporaryFile() as tmp_file:
         call_command('import_brands', tmp_file.name, "1234566789", interactive=False, stdout=out)
     self.assertIn("Empty file. Nothing to do", strip_ansi_escape_sequence(out.getvalue()))
Exemple #16
0
 def setUp(self):
     super(InstanceMixin, self).setUp()
     self.instance = CompanyFactory()
Exemple #17
0
 def test_existings_compnay_in_db(self, mock_tool):
     CompanyFactory(nip=123)
     mock_tool.return_value = [self._get_mock()]
     data = {'is_krs' : '1', 'no': 123}
     form = CompanyCreateFromKRSForm(data=data)
     self.assertFalse(form.is_valid())
Exemple #18
0
 def setUp(self):
     super(ConcurencyComapnyUpdateTestCase, self).setUp()
     self.instance = CompanyFactory()