mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-03 03:16:10 -06:00 
			
		
		
		
	Fix #384: duplicate tags due to case insensitivity
This commit is contained in:
		@@ -442,8 +442,10 @@ class FileInfo:
 | 
			
		||||
    def _get_tags(cls, tags):
 | 
			
		||||
        r = []
 | 
			
		||||
        for t in tags.split(","):
 | 
			
		||||
            r.append(
 | 
			
		||||
                Tag.objects.get_or_create(slug=t, defaults={"name": t})[0])
 | 
			
		||||
            r.append(Tag.objects.get_or_create(
 | 
			
		||||
                slug=t.lower(),
 | 
			
		||||
                defaults={"name": t}
 | 
			
		||||
            )[0])
 | 
			
		||||
        return tuple(r)
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ from unittest import mock
 | 
			
		||||
from tempfile import TemporaryDirectory
 | 
			
		||||
 | 
			
		||||
from ..consumer import Consumer
 | 
			
		||||
from ..models import FileInfo
 | 
			
		||||
from ..models import FileInfo, Tag
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TestConsumer(TestCase):
 | 
			
		||||
@@ -190,6 +190,20 @@ class TestAttributes(TestCase):
 | 
			
		||||
            ()
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def test_case_insensitive_tag_creation(self):
 | 
			
		||||
        """
 | 
			
		||||
        Tags should be detected and created as lower case.
 | 
			
		||||
        :return:
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        path = "Title - Correspondent - tAg1,TAG2.pdf"
 | 
			
		||||
        self.assertEqual(len(FileInfo.from_path(path).tags), 2)
 | 
			
		||||
 | 
			
		||||
        path = "Title - Correspondent - tag1,tag2.pdf"
 | 
			
		||||
        self.assertEqual(len(FileInfo.from_path(path).tags), 2)
 | 
			
		||||
 | 
			
		||||
        self.assertEqual(Tag.objects.all().count(), 2)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TestFieldPermutations(TestCase):
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user