Пример #1
0
    def test_translated(self):
        bylicense30ported = ToolFactory(unit="by-nc",
                                        version="3.0",
                                        jurisdiction_code="ar")
        bylicense30unported = ToolFactory(unit="by-nc",
                                          version="3.0",
                                          jurisdiction_code="")

        bylicense40 = ToolFactory(unit="by-nc",
                                  version="4.0",
                                  jurisdiction_code="")

        zerov1declaration = ToolFactory(unit="zero",
                                        version="1.0",
                                        jurisdiction_code="")

        should_be_translated = [
            LegalCodeFactory(tool=bylicense40),
            LegalCodeFactory(tool=zerov1declaration),
        ]
        should_not_be_translated = [
            LegalCodeFactory(tool=bylicense30ported),
            LegalCodeFactory(tool=bylicense30unported),
        ]
        self.assertCountEqual(should_be_translated,
                              list(LegalCode.objects.translated()))
        self.assertCountEqual(
            should_not_be_translated,
            set(LegalCode.objects.all()) - set(LegalCode.objects.translated()),
        )
Пример #2
0
    def test_get_publish_files_mark_legal_code(self):
        legal_code = LegalCodeFactory(
            tool__category="publicdomain",
            tool__deed_only=True,
            tool__unit="mark",
            tool__version="1.0",
            language_code="en",
        )

        returned_list = legal_code.get_publish_files("legalcode")

        self.assertEqual(
            [
                # relpath
                None,
                # symlinks
                [],
                # redirects_data
                [
                    {
                        "destination":
                        "deed.en",
                        "language_code":
                        "en",
                        "redirect_file":
                        ("publicdomain/mark/1.0/legalcode.en-us.html"),
                        "title":
                        "",
                    },
                    {
                        "destination":
                        "deed.en",
                        "language_code":
                        "en",
                        "redirect_file":
                        ("publicdomain/mark/1.0/legalcode.en_us.html"),
                        "title":
                        "",
                    },
                    {
                        "destination":
                        "deed.en",
                        "language_code":
                        "en",
                        "redirect_file":
                        ("publicdomain/mark/1.0/legalcode.en.html"),
                        "title":
                        "",
                    },
                    {
                        "destination": "deed.en",
                        "language_code": "en",
                        "redirect_file":
                        ("publicdomain/mark/1.0/legalcode.html"),
                        "title": "",
                    },
                ],
            ],
            returned_list,
        )
Пример #3
0
 def test_get_redirect_pairs_4(self):
     tool = ToolFactory(category="license", unit="by", version="4.0")
     legal_code = LegalCodeFactory(tool=tool, language_code="nl")
     redirect_pairs = legal_code.get_redirect_pairs("deed")
     self.assertEqual(
         [["license/by/4.0/deed.NL", "license/by/4.0/deed.nl"]],
         redirect_pairs,
     )
Пример #4
0
 def test_get_pofile(self):
     legal_code = LegalCodeFactory()
     test_pofile = polib.POFile()
     test_translation_filename = "/dev/null"
     with mock.patch.object(LegalCode, "translation_filename") as mock_tf:
         mock_tf.return_value = test_translation_filename
         with mock.patch.object(polib, "pofile") as mock_pofile:
             mock_pofile.return_value = test_pofile
             result = legal_code.get_pofile()
     mock_pofile.assert_called_with("", encoding="utf-8")
     self.assertEqual(test_pofile, result)
Пример #5
0
    def test_get_translation_object(self):
        # get_translation_object on the model calls the
        # i18n.utils.get_translation_object.
        legal_code = LegalCodeFactory(
            tool__version="4.0",
            tool__unit="by-sa",
            language_code="de",
        )

        with mock.patch(
                "legal_tools.models.get_translation_object") as mock_djt:
            legal_code.get_translation_object()
        mock_djt.assert_called_with(django_language_code="de",
                                    domain="by-sa_40")
Пример #6
0
    def test_valid(self):
        bylicense30ported = ToolFactory(unit="by-nc",
                                        version="3.0",
                                        jurisdiction_code="ar")
        bylicense30unported = ToolFactory(unit="by-nc",
                                          version="3.0",
                                          jurisdiction_code="")
        nonbylicense30ported = ToolFactory(unit="xyz",
                                           version="3.0",
                                           jurisdiction_code="ar")
        nonbylicense30unported = ToolFactory(unit="xyz",
                                             version="3.0",
                                             jurisdiction_code="")

        bylicense40 = ToolFactory(unit="by-nc",
                                  version="4.0",
                                  jurisdiction_code="")
        nonbylicense40 = ToolFactory(unit="xyz",
                                     version="4.0",
                                     jurisdiction_code="")

        zerov1declaration = ToolFactory(unit="zero",
                                        version="1.0",
                                        jurisdiction_code="")
        nonzerov1declaration = ToolFactory(unit="xyz",
                                           version="1.0",
                                           jurisdiction_code="")

        # Test valid()
        should_be_valid = [
            LegalCodeFactory(tool=bylicense30ported),
            LegalCodeFactory(tool=bylicense30unported),
            LegalCodeFactory(tool=bylicense40),
            LegalCodeFactory(tool=zerov1declaration),
        ]
        should_not_be_valid = [
            LegalCodeFactory(tool=nonbylicense30ported),
            LegalCodeFactory(tool=nonbylicense30unported),
            LegalCodeFactory(tool=nonbylicense40),
            LegalCodeFactory(tool=nonzerov1declaration),
        ]
        self.assertCountEqual(should_be_valid, list(LegalCode.objects.valid()))
        self.assertCountEqual(
            should_not_be_valid,
            set(LegalCode.objects.all()) - set(LegalCode.objects.valid()),
        )
        # Test validgroups()
        self.assertCountEqual(
            should_be_valid,
            list(LegalCode.objects.validgroups()["Licenses 4.0"]) +
            list(LegalCode.objects.validgroups()["Licenses 3.0"]) +
            list(LegalCode.objects.validgroups()["Public Domain all"]),
        )
        self.assertCountEqual(
            should_not_be_valid,
            set(LegalCode.objects.all()) - set(
                list(LegalCode.objects.validgroups()["Licenses 4.0"]) +
                list(LegalCode.objects.validgroups()["Licenses 3.0"]) +
                list(LegalCode.objects.validgroups()["Public Domain all"])),
        )
Пример #7
0
    def test_get_legal_code_for_language_code(self):
        tool = ToolFactory()

        lc_pt = LegalCodeFactory(tool=tool, language_code="pt")
        lc_en = LegalCodeFactory(tool=tool, language_code="en")

        with override(language="pt"):
            result = tool.get_legal_code_for_language_code(None)
            self.assertEqual(lc_pt.id, result.id)
        result = tool.get_legal_code_for_language_code("pt")
        self.assertEqual(lc_pt.id, result.id)
        result = tool.get_legal_code_for_language_code("en")
        self.assertEqual(lc_en.id, result.id)
        with self.assertRaises(LegalCode.DoesNotExist):
            tool.get_legal_code_for_language_code("en_us")
Пример #8
0
    def test_translation_filename(self):
        data = [
            # (expected, unit, version, jurisdiction, language)
            (
                "/foo/legalcode/de/LC_MESSAGES/by-sa_03.po",
                "by-sa",
                "0.3",
                "",
                "de",
            ),
            (
                "/foo/legalcode/de/LC_MESSAGES/by-sa_03_xx.po",
                "by-sa",
                "0.3",
                "xx",
                "de",
            ),
        ]

        for expected, unit, version, jurisdiction, language in data:
            with self.subTest(expected):
                tool = ToolFactory(
                    unit=unit,
                    version=version,
                    jurisdiction_code=jurisdiction,
                )
                self.assertEqual(
                    expected,
                    LegalCodeFactory(
                        tool=tool,
                        language_code=language).translation_filename(),
                )
Пример #9
0
 def test_legal_code_translation_by_40_es(self):
     tool = ToolFactory(
         category="licenses",
         canonical_url="https://creativecommons.org/licenses/by/4.0/",
         version="4.0",
     )
     legal_code = LegalCodeFactory(
         tool=tool,
         language_code="es",
     )
     url = legal_code.legal_code_url
     rsp = self.client.get(url)
     text = rsp.content.decode("utf-8")
     self.assertEqual(f"{rsp.status_code} {url}", f"200 {url}")
     self.assertEqual("es", rsp.context["legal_code"].language_code)
     if ("INVALID_VARIABLE"
             in text):  # Some unresolved variable in the template
         msgs = ["INVALID_VARIABLE in output"]
         for line in text.splitlines():
             if "INVALID_VARIABLE" in line:
                 msgs.append(line)
         self.fail("\n".join(msgs))
     self.assertContains(rsp, "Sección 1 – Definiciones")
     self.assertContains(
         rsp, 'Sección 4 – Derechos "Sui Generis" sobre Bases de Datos.')
     self.assertContains(rsp, "Sección 8 – Interpretación")
Пример #10
0
 def test_str(self):
     LegalCodeFactory()
     legal_code = LegalCode.objects.first()
     self.assertEqual(
         str(legal_code),
         f"LegalCode<{legal_code.language_code},"
         f" {str(legal_code.tool)}>",
     )
Пример #11
0
 def test_has_english(self):
     tool = ToolFactory()
     lc_fr = LegalCodeFactory(tool=tool, language_code="fr")
     self.assertFalse(lc_fr.has_english())
     lc_en = LegalCodeFactory(tool=tool, language_code="en")
     self.assertTrue(lc_fr.has_english())
     self.assertTrue(lc_en.has_english())
Пример #12
0
    def test_get_publish_files_by_nc3_legal_code_ca_en(self):
        legal_code = LegalCodeFactory(
            tool__category="licenses",
            tool__jurisdiction_code="ca",
            tool__unit="by-nc",
            tool__version="3.0",
            language_code="en",
        )

        returned_list = legal_code.get_publish_files("legalcode")

        self.assertEqual(
            [
                # relpath
                "licenses/by-nc/3.0/ca/legalcode.en.html",
                # symlinks
                ["legalcode.html"],
                # redirects_data
                [
                    {
                        "destination":
                        "legalcode.en",
                        "language_code":
                        "en",
                        "redirect_file":
                        ("licenses/by-nc/3.0/ca/legalcode.en-us.html"),
                        "title":
                        "",
                    },
                    {
                        "destination":
                        "legalcode.en",
                        "language_code":
                        "en",
                        "redirect_file":
                        ("licenses/by-nc/3.0/ca/legalcode.en_us.html"),
                        "title":
                        "",
                    },
                ],
            ],
            returned_list,
        )
Пример #13
0
    def test_get_publish_files_by_nc_nd_4_legal_code_zh_hant(self):
        legal_code = LegalCodeFactory(
            tool__category="licenses",
            tool__unit="by-nc-nd",
            tool__version="4.0",
            language_code="zh-hant",
        )

        returned_list = legal_code.get_publish_files("legalcode")

        self.assertEqual(
            [
                # relpath
                "licenses/by-nc-nd/4.0/legalcode.zh-hant.html",
                # symlinks
                [],
                # redirects_data
                [
                    {
                        "destination":
                        "legalcode.zh-hant",
                        "language_code":
                        "zh-hant",
                        "redirect_file":
                        ("licenses/by-nc-nd/4.0/legalcode.zh-tw.html"),
                        "title":
                        "",
                    },
                    {
                        "destination":
                        "legalcode.zh-hant",
                        "language_code":
                        "zh-hant",
                        "redirect_file":
                        ("licenses/by-nc-nd/4.0/legalcode.zh_tw.html"),
                        "title":
                        "",
                    },
                ],
            ],
            returned_list,
        )
Пример #14
0
    def test_get_publish_files_zero_legal_code_en(self):
        legal_code = LegalCodeFactory(
            tool__category="publicdomain",
            tool__unit="zero",
            tool__version="1.0",
            language_code="en",
        )

        returned_list = legal_code.get_publish_files("legalcode")

        self.assertEqual(
            [
                # relpath
                "publicdomain/zero/1.0/legalcode.en.html",
                # symlinks
                ["legalcode.html"],
                # redirects_data
                [
                    {
                        "destination":
                        "legalcode.en",
                        "language_code":
                        "en",
                        "redirect_file":
                        ("publicdomain/zero/1.0/legalcode.en-us.html"),
                        "title":
                        "",
                    },
                    {
                        "destination":
                        "legalcode.en",
                        "language_code":
                        "en",
                        "redirect_file":
                        ("publicdomain/zero/1.0/legalcode.en_us.html"),
                        "title":
                        "",
                    },
                ],
            ],
            returned_list,
        )
Пример #15
0
 def test_view_deed_template_body_unimplemented(self):
     lc = LegalCodeFactory(
         tool__canonical_url="https://creativecommons.org/licenses/x/0.0",
         tool__unit="x",
         tool__version="0.0",
         language_code="en",
     )
     url = lc.deed_url
     rsp = self.client.get(url)
     self.assertEqual(200, rsp.status_code)
     self.assertTemplateUsed("includes/deed_body_unimplemented.html")
Пример #16
0
 def test_view_deed_template_body_mark(self):
     lc = LegalCodeFactory(
         tool__canonical_url="https://creativecommons.org/publicdomain/"
         "mark/1.0/",
         tool__unit="mark",
         tool__version="1.0",
         language_code="en",
     )
     url = lc.deed_url
     rsp = self.client.get(url)
     self.assertEqual(200, rsp.status_code)
     self.assertTemplateUsed("includes/deed_body_mark.html")
Пример #17
0
    def test_get_publish_files_zero_deed_nl(self):
        legal_code = LegalCodeFactory(
            tool__category="publicdomain",
            tool__unit="zero",
            tool__version="1.0",
            language_code="nl",
        )

        returned_list = legal_code.get_publish_files("deed")

        self.assertEqual(
            [
                # relpath
                "publicdomain/zero/1.0/deed.nl.html",
                # symlinks
                [],
                # redirects_data
                [],
            ],
            returned_list,
        )
Пример #18
0
    def test_get_publish_files_by_sa3_legal_code_am_hy(self):
        legal_code = LegalCodeFactory(
            tool__category="licenses",
            tool__jurisdiction_code="am",
            tool__unit="by-sa",
            tool__version="3.0",
            language_code="hy",
        )

        returned_list = legal_code.get_publish_files("legalcode")

        self.assertEqual(
            [
                # relpath
                "licenses/by-sa/3.0/am/legalcode.hy.html",
                # symlinks
                ["legalcode.html"],
                # redirects_data
                [],
            ],
            returned_list,
        )
Пример #19
0
 def test_branch_name(self):
     legal_code = LegalCodeFactory(
         tool__version="4.0",
         tool__unit="by-sa",
         language_code="de",
     )
     self.assertEqual("cc4-de", legal_code.branch_name())
     legal_code = LegalCodeFactory(
         tool__version="3.5",
         tool__unit="other",
         language_code="de",
     )
     self.assertEqual("other-35-de", legal_code.branch_name())
     legal_code = LegalCodeFactory(
         tool__version="3.5",
         tool__unit="other",
         language_code="de",
         tool__jurisdiction_code="xyz",
     )
     self.assertEqual("other-35-de-xyz", legal_code.branch_name())
Пример #20
0
    def test_get_publish_files_by_nc_nd4_deed_en(self):
        legal_code = LegalCodeFactory(
            tool__category="licenses",
            tool__unit="by-nc-nd",
            tool__version="4.0",
            language_code="en",
        )

        returned_list = legal_code.get_publish_files("deed")

        self.assertEqual(
            [
                # relpath
                "licenses/by-nc-nd/4.0/deed.en.html",
                # symlinks
                ["deed.html", "index.html"],
                # redirects_data
                [
                    {
                        "destination": "deed.en",
                        "language_code": "en",
                        "redirect_file":
                        ("licenses/by-nc-nd/4.0/deed.en-us.html"),
                        "title": "",
                    },
                    {
                        "destination": "deed.en",
                        "language_code": "en",
                        "redirect_file":
                        ("licenses/by-nc-nd/4.0/deed.en_us.html"),
                        "title": "",
                    },
                ],
            ],
            returned_list,
        )
Пример #21
0
    def test_translation_domain(self):
        data = [
            # (expected, unit, version, jurisdiction, language)
            ("by-sa_30", "by-sa", "3.0", "", "fr"),
            ("by-sa_30_xx", "by-sa", "3.0", "xx", "fr"),
        ]

        for expected, unit, version, jurisdiction, language in data:
            with self.subTest(expected):
                legal_code = LegalCodeFactory(
                    tool__unit=unit,
                    tool__version=version,
                    tool__jurisdiction_code=jurisdiction,
                    language_code=language,
                )
                self.assertEqual(expected, legal_code.translation_domain)
Пример #22
0
 def test_view_legal_code_identifying_jurisdiction_default_language(self):
     language_code = "de"
     lc = LegalCodeFactory(
         html="crude",
         language_code=language_code,
         tool__category="licenses",
         tool__canonical_url="https://creativecommons.org"
         "/licenses/by/3.0/de/",
         tool__version="3.0",
         tool__jurisdiction_code="de",
     )
     url = lc.legal_code_url
     rsp = self.client.get(url)
     self.assertEqual(200, rsp.status_code)
     self.assertTemplateUsed(rsp, "legalcode.html")
     self.assertTemplateUsed(rsp, "includes/legalcode_crude_html.html")
     context = rsp.context
     self.assertContains(rsp, f'lang="{language_code}"')
     self.assertEqual(lc, context["legal_code"])
Пример #23
0
    def test_view_deed_jurisdiction_language(self):
        lc = LegalCode.objects.filter(
            tool__unit="by-sa",
            tool__version="3.0",
            tool__jurisdiction_code="es",
        )[0]
        tool = lc.tool

        language_code = "fr"
        lc = LegalCodeFactory(tool=tool, language_code=language_code)
        # "<code:unit>/<version:version>/<jurisdiction:jurisdiction>
        #  /deed.<lang:target_lang>"
        url = lc.deed_url
        # Mock 'get_translation_object' because we have no 3.0 translations
        # imported yet and we can't use 4.0 to test jurisdictions.
        translation_object = DjangoTranslation(language="fr")
        with mock.patch.object(LegalCode,
                               "get_translation_object") as mock_gto:
            mock_gto.return_value = translation_object
            rsp = self.client.get(url)
        self.assertEqual(200, rsp.status_code)
Пример #24
0
    def test_get_english_pofile_path(self):
        legal_code = LegalCodeFactory(
            tool__version="4.0",
            tool__unit="by-sa",
            language_code="de",
        )
        legal_code_en = LegalCodeFactory(tool=legal_code.tool,
                                         language_code=settings.LANGUAGE_CODE)
        expected_path = "/some/dir/legalcode/en/LC_MESSAGES/by-sa_40.po"

        with mock.patch.object(
                Tool, "get_legal_code_for_language_code") as mock_glfl:
            mock_glfl.return_value = legal_code_en
            self.assertEqual(expected_path,
                             legal_code.get_english_pofile_path())
            self.assertEqual(expected_path,
                             legal_code_en.get_english_pofile_path())
        mock_glfl.assert_called_with(settings.LANGUAGE_CODE)
Пример #25
0
 def test_view_legal_code(self):
     tool = ToolFactory(
         category="licenses",
         canonical_url="https://creativecommons.org/licenses/by/4.0/",
         version="4.0",
     )
     for language_code in ["es", "ar", settings.LANGUAGE_CODE]:
         lc = LegalCodeFactory(
             tool=tool,
             language_code=language_code,
         )
         url = lc.legal_code_url
         rsp = self.client.get(url)
         self.assertEqual(200, rsp.status_code)
         self.assertTemplateUsed(rsp, "legalcode.html")
         self.assertTemplateUsed(rsp,
                                 "includes/legalcode_licenses_4.0.html")
         context = rsp.context
         self.assertEqual(lc, context["legal_code"])
         self.assertContains(rsp, f'lang="{language_code}"')
         if language_code == "es":
             self.assertContains(rsp, 'dir="ltr"')
         elif language_code == "ar":
             self.assertContains(rsp, 'dir="rtl"')
Пример #26
0
    def test_get_metadata(self):
        # Ported
        tool = ToolFactory(
            **{
                "canonical_url": (
                    "https://creativecommons.org/licenses/by-nc/3.0/xyz/"),
                "category":
                "licenses",
                "unit":
                "by-nc",
                "version":
                "3.0",
                "jurisdiction_code":
                "xyz",
                "permits_derivative_works":
                False,
                "permits_reproduction":
                False,
                "permits_distribution":
                True,
                "permits_sharing":
                True,
                "requires_share_alike":
                True,
                "requires_notice":
                True,
                "requires_attribution":
                True,
                "requires_source_code":
                True,
                "prohibits_commercial_use":
                True,
                "prohibits_high_income_nation_use":
                False,
            })

        LegalCodeFactory(tool=tool, language_code="pt")
        LegalCodeFactory(tool=tool, language_code="en")

        data = tool.get_metadata()
        expected_data = {
            "jurisdiction_name": "UNDEFINED",
            "unit": "by-nc",
            "permits_derivative_works": False,
            "permits_distribution": True,
            "permits_reproduction": False,
            "permits_sharing": True,
            "prohibits_commercial_use": True,
            "prohibits_high_income_nation_use": False,
            "requires_attribution": True,
            "requires_notice": True,
            "requires_share_alike": True,
            "requires_source_code": True,
            "legal_code_languages": {
                "en": "English",
                "pt": "Portuguese",
            },
            "version": "3.0",
        }

        for key in expected_data.keys():
            self.assertEqual(expected_data[key], data[key])

        # Unported
        tool = ToolFactory(
            **{
                "canonical_url": (
                    "https://creativecommons.org/licenses/by-nc/3.0/"),
                "category":
                "licenses",
                "unit":
                "by-nc",
                "version":
                "3.0",
                "jurisdiction_code":
                "",
                "permits_derivative_works":
                False,
                "permits_reproduction":
                False,
                "permits_distribution":
                True,
                "permits_sharing":
                True,
                "requires_share_alike":
                True,
                "requires_notice":
                True,
                "requires_attribution":
                True,
                "requires_source_code":
                True,
                "prohibits_commercial_use":
                True,
                "prohibits_high_income_nation_use":
                False,
            })

        LegalCodeFactory(tool=tool, language_code="en")

        data = tool.get_metadata()
        expected_data = {
            "unit": "by-nc",
            "version": "3.0",
            "permits_derivative_works": False,
            "permits_distribution": True,
            "permits_reproduction": False,
            "permits_sharing": True,
            "prohibits_commercial_use": True,
            "prohibits_high_income_nation_use": False,
            "requires_attribution": True,
            "requires_notice": True,
            "requires_share_alike": True,
            "requires_source_code": True,
            "legal_code_languages": {
                "en": "English",
            },
        }

        for key in expected_data.keys():
            self.assertEqual(expected_data[key], data[key])

        # Deprecated
        tool = ToolFactory(
            **{
                "canonical_url": (
                    "https://creativecommons.org/licenses/sampling/1.0/"),
                "category":
                "licenses",
                "unit":
                "sampling",
                "version":
                "1.0",
                "jurisdiction_code":
                "",
                "deprecated_on":
                "2007-06-04",
                "permits_derivative_works":
                True,
                "permits_reproduction":
                True,
                "permits_distribution":
                True,
                "permits_sharing":
                True,
                "requires_share_alike":
                False,
                "requires_notice":
                True,
                "requires_attribution":
                True,
                "requires_source_code":
                False,
                "prohibits_commercial_use":
                False,
                "prohibits_high_income_nation_use":
                False,
            })

        LegalCodeFactory(tool=tool, language_code="en")

        data = tool.get_metadata()
        expected_data = {
            "unit": "sampling",
            "version": "1.0",
            "deprecated_on": "2007-06-04",
            "permits_derivative_works": True,
            "permits_distribution": True,
            "permits_reproduction": True,
            "permits_sharing": True,
            "prohibits_commercial_use": False,
            "prohibits_high_income_nation_use": False,
            "requires_attribution": True,
            "requires_notice": True,
            "requires_share_alike": False,
            "requires_source_code": False,
            "legal_code_languages": {
                "en": "English",
            },
        }

        for key in expected_data.keys():
            self.assertEqual(expected_data[key], data[key])

        # Deed-only
        tool = ToolFactory(
            **{
                "canonical_url": (
                    "https://creativecommons.org/publicdomain/mark/1.0/"),
                "category":
                "publicdomain",
                "unit":
                "mark",
                "version":
                "1.0",
                "jurisdiction_code":
                "",
                "deed_only":
                True,
                "deprecated_on":
                "2007-06-04",
                "permits_derivative_works":
                True,
                "permits_reproduction":
                True,
                "permits_distribution":
                True,
                "permits_sharing":
                True,
                "requires_share_alike":
                False,
                "requires_notice":
                False,
                "requires_attribution":
                False,
                "requires_source_code":
                False,
                "prohibits_commercial_use":
                False,
                "prohibits_high_income_nation_use":
                False,
            })

        LegalCodeFactory(tool=tool, language_code="en")

        data = tool.get_metadata()
        expected_data = {
            "unit": "mark",
            "version": "1.0",
            "deprecated_on": "2007-06-04",
            "permits_derivative_works": True,
            "permits_distribution": True,
            "permits_reproduction": True,
            "permits_sharing": True,
            "prohibits_commercial_use": False,
            "prohibits_high_income_nation_use": False,
            "requires_attribution": False,
            "requires_notice": False,
            "requires_share_alike": False,
            "requires_source_code": False,
        }

        for key in expected_data.keys():
            self.assertEqual(expected_data[key], data[key])
Пример #27
0
    def setUp(self):
        self.by = ToolFactory(
            canonical_url="https://creativecommons.org/licenses/by/4.0/",
            category="licenses",
            unit="by",
            version="4.0",
            permits_derivative_works=True,
            permits_reproduction=True,
            permits_distribution=True,
            permits_sharing=True,
            requires_share_alike=False,
            requires_notice=True,
            requires_attribution=True,
            requires_source_code=False,
            prohibits_commercial_use=False,
            prohibits_high_income_nation_use=False,
        )
        self.by_nc = ToolFactory(
            canonical_url="https://creativecommons.org/licenses/by-nc/4.0/",
            category="licenses",
            unit="by-nc",
            version="4.0",
            permits_derivative_works=True,
            permits_reproduction=True,
            permits_distribution=True,
            permits_sharing=True,
            requires_share_alike=False,
            requires_notice=True,
            requires_attribution=True,
            requires_source_code=False,
            prohibits_commercial_use=True,
            prohibits_high_income_nation_use=False,
        )
        self.by_nc_nd = ToolFactory(
            canonical_url="https://creativecommons.org/licenses/by-nc-nd/4.0/",
            category="licenses",
            unit="by-nc-nd",
            version="4.0",
            permits_derivative_works=False,
            permits_reproduction=True,
            permits_distribution=True,
            permits_sharing=True,
            requires_share_alike=False,
            requires_notice=True,
            requires_attribution=True,
            requires_source_code=False,
            prohibits_commercial_use=True,
            prohibits_high_income_nation_use=False,
        )
        self.by_nc_sa = ToolFactory(
            canonical_url="https://creativecommons.org/licenses/by-nc-sa/4.0/",
            category="licenses",
            unit="by-nc-sa",
            version="4.0",
            permits_derivative_works=True,
            permits_reproduction=True,
            permits_distribution=True,
            permits_sharing=True,
            requires_share_alike=True,
            requires_notice=True,
            requires_attribution=True,
            requires_source_code=False,
            prohibits_commercial_use=True,
            prohibits_high_income_nation_use=False,
        )
        self.by_nd = ToolFactory(
            canonical_url="https://creativecommons.org/licenses/by-nd/4.0/",
            category="licenses",
            unit="by-nd",
            version="4.0",
            permits_derivative_works=False,
            permits_reproduction=True,
            permits_distribution=True,
            permits_sharing=True,
            requires_share_alike=False,
            requires_notice=True,
            requires_attribution=True,
            requires_source_code=False,
            prohibits_commercial_use=False,
            prohibits_high_income_nation_use=False,
        )
        self.by_sa = ToolFactory(
            canonical_url="https://creativecommons.org/licenses/by-sa/4.0/",
            category="licenses",
            unit="by-sa",
            version="4.0",
            permits_derivative_works=True,
            permits_reproduction=True,
            permits_distribution=True,
            permits_sharing=True,
            requires_share_alike=True,
            requires_notice=True,
            requires_attribution=True,
            requires_source_code=False,
            prohibits_commercial_use=False,
            prohibits_high_income_nation_use=False,
        )
        self.by = ToolFactory(
            canonical_url="https://creativecommons.org/licenses/by/3.0/",
            category="licenses",
            unit="by",
            version="3.0",
            permits_derivative_works=True,
            permits_reproduction=True,
            permits_distribution=True,
            permits_sharing=True,
            requires_share_alike=False,
            requires_notice=True,
            requires_attribution=True,
            requires_source_code=False,
            prohibits_commercial_use=False,
            prohibits_high_income_nation_use=False,
        )
        self.by = ToolFactory(
            canonical_url="https://creativecommons.org/licenses/by/2.0/",
            category="licenses",
            unit="by",
            version="2.0",
            permits_derivative_works=True,
            permits_reproduction=True,
            permits_distribution=True,
            permits_sharing=True,
            requires_share_alike=False,
            requires_notice=True,
            requires_attribution=True,
            requires_source_code=False,
            prohibits_commercial_use=False,
            prohibits_high_income_nation_use=False,
        )
        self.zero = ToolFactory(
            canonical_url="https://creativecommons.org/publicdomain/zero/1.0/",
            category="publicdomain",
            unit="zero",
            version="1.0",
            permits_derivative_works=True,
            permits_reproduction=True,
            permits_distribution=True,
            permits_sharing=True,
            requires_share_alike=False,
            requires_notice=False,
            requires_attribution=False,
            requires_source_code=False,
            prohibits_commercial_use=False,
            prohibits_high_income_nation_use=False,
        )

        for tool in Tool.objects.all():
            LegalCodeFactory(tool=tool, language_code="en")
            LegalCodeFactory(tool=tool, language_code="es")
            LegalCodeFactory(tool=tool, language_code="fr")

        self.by_sa_30_es = ToolFactory(
            canonical_url="https://creativecommons.org/licenses/by-sa/3.0/es/",
            category="licenses",
            unit="by-sa",
            version="3.0",
            jurisdiction_code="es",
            permits_derivative_works=True,
            permits_reproduction=True,
            permits_distribution=True,
            permits_sharing=True,
            requires_share_alike=True,
            requires_notice=True,
            requires_attribution=True,
            requires_source_code=False,
            prohibits_commercial_use=False,
            prohibits_high_income_nation_use=False,
        )
        LegalCodeFactory(tool=self.by_sa_30_es,
                         language_code="es")  # Default lang

        self.by_sa_20_es = ToolFactory(
            canonical_url="https://creativecommons.org/licenses/by-sa/2.0/es/",
            category="licenses",
            unit="by-sa",
            version="2.0",
            jurisdiction_code="es",
            permits_derivative_works=True,
            permits_reproduction=True,
            permits_distribution=True,
            permits_sharing=True,
            requires_share_alike=True,
            requires_notice=True,
            requires_attribution=True,
            requires_source_code=False,
            prohibits_commercial_use=False,
            prohibits_high_income_nation_use=False,
        )
        LegalCodeFactory(tool=self.by_sa_20_es,
                         language_code="es")  # Default lang

        super().setUp()