# Path: spdx/config.py
# def _load_list(file_name, object_type="licenses", id_attribute="licenseId"):
# def load_license_list(file_name):
# def load_exception_list(file_name):
# LICENSE_LIST_VERSION = Version(major=_lmajor, minor=_lminor)
# EXCEPTION_LIST_VERSION = Version(major=_emajor, minor=_eminor)
# 
# Path: spdx/version.py
# class Version(object):
#     """
#     Version number composed of major and minor.
#     Fields:
#     - major: Major number, int.
#     - minor: Minor number, int.
#     """
# 
#     VERS_STR_REGEX = re.compile(r"(\d+)\.(\d+)")
# 
#     def __init__(self, major, minor):
#         self.major = int(major)
#         self.minor = int(minor)
# 
#     @classmethod
#     def from_str(cls, value):
#         """Constructs a Version from a string.
#         Returns None if string not in N.N form where N represents a
#         number.
#         """
#         m = cls.VERS_STR_REGEX.match(value)
#         if m is not None:
#             return cls(int(m.group(1)), int(m.group(2)))
#         else:
#             return None
# 
#     def __repr__(self):
#         return "Version" + repr((self.major, self.minor))
# 
#     def __str__(self):
#         return "SPDX-{major}.{minor}".format(**self.__dict__)
# 
#     def __eq__(self, other):
#         return (
#             isinstance(other, self.__class__)
#             and self.major == other.major
#             and self.minor == other.minor
#         )
# 
#     def __lt__(self, other):
#         return self.major < other.major or (
#             self.major == other.major and self.minor < other.minor
#         )


from unittest import TestCase
from spdx import config
from spdx.version import Version

# Copyright (c) the SPDX tools authors
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#     http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.




class TestLicenseList(TestCase):
    maxDiff = None

    def test_load_license_list(self):
        version, licenses_map = config.load_license_list(config._licenses)
        assert version == ('3', '6')
        # Test some instances in licenses_map
        assert licenses_map['MIT License'] == 'MIT'
        assert licenses_map['MIT'] == 'MIT License'
        assert licenses_map['Apache License 2.0'] == 'Apache-2.0'
        assert licenses_map['Apache-2.0'] == 'Apache License 2.0'
        assert licenses_map['GNU General Public License v3.0 only'] == 'GPL-3.0-only'
        assert licenses_map['GPL-3.0-only'] == 'GNU General Public License v3.0 only'

    def test_config_license_list_version_constant(self):

# Path: spdx/config.py
# def _load_list(file_name, object_type="licenses", id_attribute="licenseId"):
# def load_license_list(file_name):
# def load_exception_list(file_name):
# LICENSE_LIST_VERSION = Version(major=_lmajor, minor=_lminor)
# EXCEPTION_LIST_VERSION = Version(major=_emajor, minor=_eminor)
# 
# Path: spdx/version.py
# class Version(object):
#     """
#     Version number composed of major and minor.
#     Fields:
#     - major: Major number, int.
#     - minor: Minor number, int.
#     """
# 
#     VERS_STR_REGEX = re.compile(r"(\d+)\.(\d+)")
# 
#     def __init__(self, major, minor):
#         self.major = int(major)
#         self.minor = int(minor)
# 
#     @classmethod
#     def from_str(cls, value):
#         """Constructs a Version from a string.
#         Returns None if string not in N.N form where N represents a
#         number.
#         """
#         m = cls.VERS_STR_REGEX.match(value)
#         if m is not None:
#             return cls(int(m.group(1)), int(m.group(2)))
#         else:
#             return None
# 
#     def __repr__(self):
#         return "Version" + repr((self.major, self.minor))
# 
#     def __str__(self):
#         return "SPDX-{major}.{minor}".format(**self.__dict__)
# 
#     def __eq__(self, other):
#         return (
#             isinstance(other, self.__class__)
#             and self.major == other.major
#             and self.minor == other.minor
#         )
# 
#     def __lt__(self, other):
#         return self.major < other.major or (
#             self.major == other.major and self.minor < other.minor
#         )


# Path: tests/test_config.py
from unittest import TestCase
from spdx import config
from spdx.version import Version


# Copyright (c) the SPDX tools authors
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#     http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.




class TestLicenseList(TestCase):
    maxDiff = None

    def test_load_license_list(self):
        version, licenses_map = config.load_license_list(config._licenses)
        assert version == ('3', '6')
        # Test some instances in licenses_map
        assert licenses_map['MIT License'] == 'MIT'
        assert licenses_map['MIT'] == 'MIT License'
        assert licenses_map['Apache License 2.0'] == 'Apache-2.0'
        assert licenses_map['Apache-2.0'] == 'Apache License 2.0'
        assert licenses_map['GNU General Public License v3.0 only'] == 'GPL-3.0-only'
        assert licenses_map['GPL-3.0-only'] == 'GNU General Public License v3.0 only'

    def test_config_license_list_version_constant(self):

        assert config.LICENSE_LIST_VERSION == Version(major=3, minor=6)