Example #1
0
class ProductUpdateWebTestCase(WebTestMixin, TestCase):
    def setUp(self):
        super().setUp()
        self.instance = ProductFactory(code="123")
        self.url = reverse('product:edit', args=[self.instance.code])
        self.user = StaffFactory()

    def test_form_success(self):
        page = self.app.get(self.url, user=self.user)
        page.form['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.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['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['code'].attrs['disabled'], 'true')

        page.form['code'] = "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.code, "123")
Example #2
0
class TestProductUpdateWeb(PermissionMixin, TestCase):
    def setUp(self):
        super().setUp()
        self.instance = ProductFactory(code="123")
        self.company = CompanyFactory()
        self.url = reverse('product:edit', args=[self.instance.code])

    @override_settings(LANGUAGE_CODE='en-EN')
    def test_form_view(self):
        self.login()
        page = self.client.get(self.url)
        self.assertContains(page, 'commit_desc')
        self.assertContains(page, 'name')

    @override_settings(LANGUAGE_CODE='en-EN')
    def test_form_success_submit(self):
        self.login()
        page = self.client.post(
            self.url,
            data={
                'code': self.instance.code,
                'name': "New name",
                'company': self.company.pk,
                'commit_desc': "Commit description",
                'action': 'Save',
            },
        )

        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.name, "New name")

    @override_settings(LANGUAGE_CODE='en-EN')
    def test_form_commit_desc_required(self):
        self.login()
        page = self.client.post(
            self.url,
            data={
                'code': self.instance.code,
                'name': "New name",
                'company': self.company.pk,
                'commit_desc': "",
                'action': 'Save',
            },
        )

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