Beispiel #1
0
    def test_perform(self):
        # Preview should not create anything
        created, matched, deleted = self.discovery.perform(preview=True)
        self.assertEqual(len(created), 3)
        self.assertEqual(len(matched), 0)
        self.assertEqual(len(deleted), 0)

        # Create components
        created, matched, deleted = self.discovery.perform()
        self.assertEqual(len(created), 3)
        self.assertEqual(len(matched), 0)
        self.assertEqual(len(deleted), 0)

        # Test second call does nothing
        created, matched, deleted = self.discovery.perform()
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 3)
        self.assertEqual(len(deleted), 0)

        # Remove some files
        repository = self.component.repository
        with repository.lock:
            repository.remove(
                ['po-link', 'second-po/cs.po', 'second-po/de.po'],
                'Remove some files'
            )

        # Create new discover as it caches matches
        discovery = ComponentDiscovery(
            self.component,
            r'(?P<component>[^/]*)/(?P<language>[^/]*)\.po',
            '{{ component|title }}',
            '^(?!xx).*$',
        )

        # Test component removal preview
        created, matched, deleted = discovery.perform(
            preview=True, remove=True
        )
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 1)
        self.assertEqual(len(deleted), 2)

        # Test component removal
        created, matched, deleted = discovery.perform(remove=True)
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 1)
        self.assertEqual(len(deleted), 2)

        # Components should be now removed
        created, matched, deleted = discovery.perform(remove=True)
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 1)
        self.assertEqual(len(deleted), 0)
Beispiel #2
0
    def test_perform(self):
        # Preview should not create anything
        created, matched, deleted = self.discovery.perform(preview=True)
        self.assertEqual(len(created), 3)
        self.assertEqual(len(matched), 0)
        self.assertEqual(len(deleted), 0)

        # Create components
        created, matched, deleted = self.discovery.perform()
        self.assertEqual(len(created), 3)
        self.assertEqual(len(matched), 0)
        self.assertEqual(len(deleted), 0)

        # Test second call does nothing
        created, matched, deleted = self.discovery.perform()
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 3)
        self.assertEqual(len(deleted), 0)

        # Remove some files
        repository = self.component.repository
        with repository.lock:
            repository.remove(
                ["po-link", "second-po/cs.po", "second-po/de.po"],
                "Remove some files")

        # Create new discover as it caches matches
        discovery = ComponentDiscovery(
            self.component,
            file_format="po",
            match=r"(?P<component>[^/]*)/(?P<language>[^/]*)\.po",
            name_template="{{ component|title }}",
            language_regex="^(?!xx).*$",
        )

        # Test component removal preview
        created, matched, deleted = discovery.perform(preview=True,
                                                      remove=True)
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 1)
        self.assertEqual(len(deleted), 2)

        # Test component removal
        created, matched, deleted = discovery.perform(remove=True)
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 1)
        self.assertEqual(len(deleted), 2)

        # Components should be now removed
        created, matched, deleted = discovery.perform(remove=True)
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 1)
        self.assertEqual(len(deleted), 0)
Beispiel #3
0
    def test_perform(self):
        # Preview should not create anything
        created, matched, deleted = self.discovery.perform(preview=True)
        self.assertEqual(len(created), 3)
        self.assertEqual(len(matched), 0)
        self.assertEqual(len(deleted), 0)

        # Create components
        created, matched, deleted = self.discovery.perform()
        self.assertEqual(len(created), 3)
        self.assertEqual(len(matched), 0)
        self.assertEqual(len(deleted), 0)

        # Test second call does nothing
        created, matched, deleted = self.discovery.perform()
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 3)
        self.assertEqual(len(deleted), 0)

        # Second discovery with restricted component match
        discovery = ComponentDiscovery(
            self.component,
            r'(?P<component>po)/(?P<language>[^/]*)\.po',
            '{{ component|title }}',
            '^(?!xx).*$',
        )

        # Test component removal preview
        created, matched, deleted = discovery.perform(
            preview=True, remove=True
        )
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 0)
        self.assertEqual(len(deleted), 3)

        # Test component removal
        created, matched, deleted = discovery.perform(remove=True)
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 0)
        self.assertEqual(len(deleted), 3)

        # Components should be now removed
        created, matched, deleted = discovery.perform(remove=True)
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 0)
        self.assertEqual(len(deleted), 0)
Beispiel #4
0
 def test_duplicates(self):
     # Create all components with desired name po
     discovery = ComponentDiscovery(
         self.component,
         r'[^/]*(?P<component>po)[^/]*/(?P<language>[^/]*)\.po',
         '{{ component|title }}',
         '^(?!xx).*$',
     )
     created, matched, deleted = discovery.perform()
     self.assertEqual(len(created), 3)
     self.assertEqual(len(matched), 0)
     self.assertEqual(len(deleted), 0)
Beispiel #5
0
 def test_multi_language(self):
     discovery = ComponentDiscovery(
         self.component,
         match=r"localization/(?P<language>[^/]*)/"
         r"(?P<component>[^/]*)\.(?P=language)\.po",
         name_template="{{ component }}",
         file_format="po",
     )
     created, matched, deleted = discovery.perform()
     self.assertEqual(len(created), 1)
     self.assertEqual(created[0][0]["mask"], "localization/*/component.*.po")
     self.assertEqual(len(matched), 0)
     self.assertEqual(len(deleted), 0)
Beispiel #6
0
 def test_duplicates(self):
     # Create all components with desired name po
     discovery = ComponentDiscovery(
         self.component,
         match=r"[^/]*(?P<component>po)[^/]*/(?P<language>[^/]*)\.po",
         name_template="{{ component|title }}",
         language_regex="^(?!xx).*$",
         file_format="po",
     )
     created, matched, deleted = discovery.perform()
     self.assertEqual(len(created), 3)
     self.assertEqual(len(matched), 0)
     self.assertEqual(len(deleted), 0)
Beispiel #7
0
 def test_multi_language(self):
     discovery = ComponentDiscovery(
         self.component,
         match=r'localization/(?P<language>[^/]*)/'
         r'(?P<component>[^/]*)\.(?P=language)\.po',
         name_template='{{ component }}',
         file_format='po',
     )
     created, matched, deleted = discovery.perform()
     self.assertEqual(len(created), 1)
     self.assertEqual(created[0][0]['mask'], 'localization/*/component.*.po')
     self.assertEqual(len(matched), 0)
     self.assertEqual(len(deleted), 0)
Beispiel #8
0
class ComponentDiscoveryTest(RepoTestCase):
    def setUp(self):
        super().setUp()
        self.component = self.create_component()
        self.discovery = ComponentDiscovery(
            self.component,
            file_format="po",
            match=r"(?P<component>[^/]*)/(?P<language>[^/]*)\.po",
            name_template="{{ component|title }}",
            language_regex="^(?!xx).*$",
        )

    def test_matched_files(self):
        self.assertEqual(
            sorted(self.discovery.matched_files),
            sorted(
                [
                    "po-link/cs.po",
                    "po-link/de.po",
                    "po-link/it.po",
                    "po-mono/cs.po",
                    "po-mono/de.po",
                    "po-mono/en.po",
                    "po-mono/it.po",
                    "po/cs.po",
                    "po/de.po",
                    "po/it.po",
                    "second-po/cs.po",
                    "second-po/de.po",
                ]
            ),
        )

    def test_matched_components(self):
        self.assertEqual(
            self.discovery.matched_components,
            {
                "po/*.po": {
                    "files": {"po/cs.po", "po/de.po", "po/it.po"},
                    "files_langs": {
                        ("po/cs.po", "cs"),
                        ("po/de.po", "de"),
                        ("po/it.po", "it"),
                    },
                    "languages": {"cs", "de", "it"},
                    "mask": "po/*.po",
                    "name": "Po",
                    "slug": "po",
                    "base_file": "",
                    "new_base": "",
                },
                "po-link/*.po": {
                    "files": {"po-link/cs.po", "po-link/de.po", "po-link/it.po"},
                    "files_langs": {
                        ("po-link/cs.po", "cs"),
                        ("po-link/de.po", "de"),
                        ("po-link/it.po", "it"),
                    },
                    "languages": {"cs", "de", "it"},
                    "mask": "po-link/*.po",
                    "name": "Po-Link",
                    "slug": "po-link",
                    "base_file": "",
                    "new_base": "",
                },
                "po-mono/*.po": {
                    "files": {
                        "po-mono/cs.po",
                        "po-mono/de.po",
                        "po-mono/it.po",
                        "po-mono/en.po",
                    },
                    "files_langs": {
                        ("po-mono/cs.po", "cs"),
                        ("po-mono/de.po", "de"),
                        ("po-mono/it.po", "it"),
                        ("po-mono/en.po", "en"),
                    },
                    "languages": {"cs", "de", "it", "en"},
                    "mask": "po-mono/*.po",
                    "name": "Po-Mono",
                    "slug": "po-mono",
                    "base_file": "",
                    "new_base": "",
                },
                "second-po/*.po": {
                    "files": {"second-po/cs.po", "second-po/de.po"},
                    "files_langs": {
                        ("second-po/cs.po", "cs"),
                        ("second-po/de.po", "de"),
                    },
                    "languages": {"cs", "de"},
                    "mask": "second-po/*.po",
                    "name": "Second-Po",
                    "slug": "second-po",
                    "base_file": "",
                    "new_base": "",
                },
            },
        )

    def test_perform(self):
        # Preview should not create anything
        created, matched, deleted = self.discovery.perform(preview=True)
        self.assertEqual(len(created), 3)
        self.assertEqual(len(matched), 0)
        self.assertEqual(len(deleted), 0)

        # Create components
        created, matched, deleted = self.discovery.perform()
        self.assertEqual(len(created), 3)
        self.assertEqual(len(matched), 0)
        self.assertEqual(len(deleted), 0)

        # Test second call does nothing
        created, matched, deleted = self.discovery.perform()
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 3)
        self.assertEqual(len(deleted), 0)

        # Remove some files
        repository = self.component.repository
        with repository.lock:
            repository.remove(
                ["po-link", "second-po/cs.po", "second-po/de.po"], "Remove some files"
            )

        # Create new discover as it caches matches
        discovery = ComponentDiscovery(
            self.component,
            file_format="po",
            match=r"(?P<component>[^/]*)/(?P<language>[^/]*)\.po",
            name_template="{{ component|title }}",
            language_regex="^(?!xx).*$",
        )

        # Test component removal preview
        created, matched, deleted = discovery.perform(preview=True, remove=True)
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 1)
        self.assertEqual(len(deleted), 2)

        # Test component removal
        created, matched, deleted = discovery.perform(remove=True)
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 1)
        self.assertEqual(len(deleted), 2)

        # Components should be now removed
        created, matched, deleted = discovery.perform(remove=True)
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 1)
        self.assertEqual(len(deleted), 0)

    def test_duplicates(self):
        # Create all components with desired name po
        discovery = ComponentDiscovery(
            self.component,
            match=r"[^/]*(?P<component>po)[^/]*/(?P<language>[^/]*)\.po",
            name_template="{{ component|title }}",
            language_regex="^(?!xx).*$",
            file_format="po",
        )
        created, matched, deleted = discovery.perform()
        self.assertEqual(len(created), 3)
        self.assertEqual(len(matched), 0)
        self.assertEqual(len(deleted), 0)

    def test_multi_language(self):
        discovery = ComponentDiscovery(
            self.component,
            match=r"localization/(?P<language>[^/]*)/"
            r"(?P<component>[^/]*)\.(?P=language)\.po",
            name_template="{{ component }}",
            file_format="po",
        )
        created, matched, deleted = discovery.perform()
        self.assertEqual(len(created), 1)
        self.assertEqual(created[0][0]["mask"], "localization/*/component.*.po")
        self.assertEqual(len(matched), 0)
        self.assertEqual(len(deleted), 0)
Beispiel #9
0
class ComponentDiscoveryTest(RepoTestCase):
    def setUp(self):
        super(ComponentDiscoveryTest, self).setUp()
        self.component = self.create_component()
        self.discovery = ComponentDiscovery(
            self.component,
            r'(?P<component>[^/]*)/(?P<language>[^/]*)\.po',
            '{{ component|title }}',
            '^(?!xx).*$',
        )

    def test_matched_files(self):
        self.assertEqual(
            sorted(self.discovery.matched_files),
            sorted([
                'po-link/cs.po',
                'po-link/de.po',
                'po-link/it.po',
                'po-mono/cs.po',
                'po-mono/de.po',
                'po-mono/en.po',
                'po-mono/it.po',
                'po/cs.po',
                'po/de.po',
                'po/it.po',
                'second-po/cs.po',
                'second-po/de.po',
            ])
        )

    def test_matched_components(self):
        self.assertEqual(
            self.discovery.matched_components,
            {
                'po/*.po': {
                    'files': {'po/cs.po', 'po/de.po', 'po/it.po'},
                    'files_langs': {
                        ('po/cs.po', 'cs'),
                        ('po/de.po', 'de'),
                        ('po/it.po', 'it'),
                    },
                    'languages': {'cs', 'de', 'it'},
                    'mask': 'po/*.po',
                    'name': 'Po',
                    'slug': 'po',
                    'base_file': '',
                    'new_base': '',
                },
                'po-link/*.po': {
                    'files': {
                        'po-link/cs.po', 'po-link/de.po', 'po-link/it.po'
                    },
                    'files_langs': {
                        ('po-link/cs.po', 'cs'),
                        ('po-link/de.po', 'de'),
                        ('po-link/it.po', 'it'),
                    },
                    'languages': {'cs', 'de', 'it'},
                    'mask': 'po-link/*.po',
                    'name': 'Po-Link',
                    'slug': 'po-link',
                    'base_file': '',
                    'new_base': '',
                },
                'po-mono/*.po': {
                    'files': {
                        'po-mono/cs.po', 'po-mono/de.po',
                        'po-mono/it.po', 'po-mono/en.po'
                    },
                    'files_langs': {
                        ('po-mono/cs.po', 'cs'),
                        ('po-mono/de.po', 'de'),
                        ('po-mono/it.po', 'it'),
                        ('po-mono/en.po', 'en'),
                    },
                    'languages': {'cs', 'de', 'it', 'en'},
                    'mask': 'po-mono/*.po',
                    'name': 'Po-Mono',
                    'slug': 'po-mono',
                    'base_file': '',
                    'new_base': '',
                },
                'second-po/*.po': {
                    'files': {'second-po/cs.po', 'second-po/de.po'},
                    'files_langs': {
                        ('second-po/cs.po', 'cs'),
                        ('second-po/de.po', 'de'),
                    },
                    'languages': {'cs', 'de'},
                    'mask': 'second-po/*.po',
                    'name': 'Second-Po',
                    'slug': 'second-po',
                    'base_file': '',
                    'new_base': '',
                },
            }
        )

    def test_perform(self):
        # Preview should not create anything
        created, matched, deleted = self.discovery.perform(preview=True)
        self.assertEqual(len(created), 3)
        self.assertEqual(len(matched), 0)
        self.assertEqual(len(deleted), 0)

        # Create components
        created, matched, deleted = self.discovery.perform()
        self.assertEqual(len(created), 3)
        self.assertEqual(len(matched), 0)
        self.assertEqual(len(deleted), 0)

        # Test second call does nothing
        created, matched, deleted = self.discovery.perform()
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 3)
        self.assertEqual(len(deleted), 0)

        # Remove some files
        repository = self.component.repository
        with repository.lock:
            repository.remove(
                ['po-link', 'second-po/cs.po', 'second-po/de.po'],
                'Remove some files'
            )

        # Create new discover as it caches matches
        discovery = ComponentDiscovery(
            self.component,
            r'(?P<component>[^/]*)/(?P<language>[^/]*)\.po',
            '{{ component|title }}',
            '^(?!xx).*$',
        )

        # Test component removal preview
        created, matched, deleted = discovery.perform(
            preview=True, remove=True
        )
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 1)
        self.assertEqual(len(deleted), 2)

        # Test component removal
        created, matched, deleted = discovery.perform(remove=True)
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 1)
        self.assertEqual(len(deleted), 2)

        # Components should be now removed
        created, matched, deleted = discovery.perform(remove=True)
        self.assertEqual(len(created), 0)
        self.assertEqual(len(matched), 1)
        self.assertEqual(len(deleted), 0)

    def test_duplicates(self):
        # Create all components with desired name po
        discovery = ComponentDiscovery(
            self.component,
            r'[^/]*(?P<component>po)[^/]*/(?P<language>[^/]*)\.po',
            '{{ component|title }}',
            '^(?!xx).*$',
        )
        created, matched, deleted = discovery.perform()
        self.assertEqual(len(created), 3)
        self.assertEqual(len(matched), 0)
        self.assertEqual(len(deleted), 0)