From 8d013cc01e443b072f21ff90ef22ed159a21e889 Mon Sep 17 00:00:00 2001 From: Kamil Kosek Date: Wed, 30 Aug 2023 12:59:30 +0200 Subject: [PATCH] added test for --id-range parameter --- .../tests/test_management_retagger.py | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/documents/tests/test_management_retagger.py b/src/documents/tests/test_management_retagger.py index 75e5f7dee..eb65afb42 100644 --- a/src/documents/tests/test_management_retagger.py +++ b/src/documents/tests/test_management_retagger.py @@ -1,4 +1,5 @@ from django.core.management import call_command +from django.core.management.base import CommandError from django.test import TestCase from documents.models import Correspondent @@ -258,3 +259,38 @@ class TestRetagger(DirectoriesMixin, TestCase): self.assertEqual(d_auto.storage_path, self.sp1) self.assertIsNone(d_second.storage_path) self.assertEqual(d_unrelated.storage_path, self.sp2) + + def test_id_range_parameter(self): + commandOutput = "" + Document.objects.create( + checksum="E", + title="E", + content="NOT the first document", + ) + call_command("document_retagger", "--tags", "--id-range", "1", "2") + # The retagger shouldn`t apply the 'first' tag to our new document + self.assertEqual(Document.objects.filter(tags__id=self.tag_first.id).count(), 1) + + try: + commandOutput = call_command("document_retagger", "--tags", "--id-range") + except CommandError: + # Just ignore the error + None + self.assertIn(commandOutput, "Error: argument --id-range: expected 2 arguments") + + try: + commandOutput = call_command( + "document_retagger", + "--tags", + "--id-range", + "a", + "b", + ) + except CommandError: + # Just ignore the error + None + self.assertIn(commandOutput, "error: argument --id-range: invalid int value:") + + call_command("document_retagger", "--tags", "--id-range", "1", "9999") + # Now we should have 2 documents + self.assertEqual(Document.objects.filter(tags__id=self.tag_first.id).count(), 2)