Example #1
0
 def test_cleanse_licence_expression(self):
     self.assertEqual(
         cleanse_licence_expression(
             "Apache-2.0 AND (BSD License OR MIT License) AND Apache 2"),
         "Apache-2.0 AND (0BSD OR MIT)",
     )
     self.assertEqual(
         cleanse_licence_expression(
             "OSI Approved::The Apache License Version 2.0 AND (BSD Zero Clause License OR MIT) AND Apache 2.0"
         ),
         "Apache-2.0 AND (0BSD OR MIT)",
     )
Example #2
0
 def test_cleanse_licence_descriptor(self):
     self.assertEqual(cleanse_licence_descriptor("BSD License"), "BSD")
     self.assertEqual(cleanse_licence_descriptor("MIT License"), "MIT")
     self.assertEqual(cleanse_licence_descriptor("apache"), "Apache-2.0")
     self.assertEqual(cleanse_licence_expression("Apache Software License"),
                      "Apache-2.0")
     self.assertEqual(
         cleanse_licence_expression(
             "public domain Python 2-Clause BSD GPL 3"), "Python-2.0")
     self.assertEqual(
         cleanse_licence_expression("Python Software Foundation License"),
         "Python-2.0")
     self.assertEqual(cleanse_licence_expression("Dual License"), "Unknown")
    def licence(self) -> str:
        """Determines licence from file notice.

        Returns:
            file's licence
        """
        file_licence = determine_file_licence(self.path)
        return cleanse_licence_expression(
            file_licence) if file_licence else self._package_licence
    def main_licence(self) -> str:
        """Gets the package's official licence.

        Returns:
            project's licence
        """
        if not self._main_licence:
            package_licence = self._package_info.metadata.licence
            self._main_licence = (cleanse_licence_expression(package_licence)
                                  if package_licence else
                                  UNKNOWN_LICENCE.identifier)
        return self._main_licence