Esempio n. 1
0
    def test_get_single_line_name_version(self, mocker):
        """Get project name and version as single line."""
        mocked_read_text = mocker.patch.object(Path,
                                               "read_text",
                                               autospec=True)
        mocked_read_text.return_value = """project(MyProject VERSION 0.0)"""

        data = get_project_data(Path("path"))
        assert data["name"] == "MyProject"
        assert data["version"] == "0.0"
Esempio n. 2
0
    def test_get_single_line_name_space(self, mocker):
        """Get project name as single line with extra spaces."""
        mocked_read_text = mocker.patch.object(Path,
                                               "read_text",
                                               autospec=True)
        mocked_read_text.return_value = """project ( MyProject )"""

        data = get_project_data(Path("path"))
        assert data["name"] == "MyProject"
        assert data["version"] is None
Esempio n. 3
0
    def test_get_cmake_project_version_single_line_version(self, mocker):
        """Get project version from CMAKE_PROJECT_VERSION as single line."""
        mocked_read_text = mocker.patch.object(Path,
                                               "read_text",
                                               autospec=True)
        mocked_read_text.return_value = """project(MyProject)

set(CMAKE_PROJECT_VERSION 0.0)"""

        data = get_project_data(Path("path"))
        assert data["version"] == "0.0"
Esempio n. 4
0
    def test_get_none(self, mocker):
        """Unable to get project data."""
        mocked_read_text = mocker.patch.object(Path,
                                               "read_text",
                                               autospec=True)
        mocked_read_text.return_value = ""

        data = get_project_data(Path("path"))
        assert data is None

        mocked_read_text.assert_called_with(Path("path") / "CMakeLists.txt")
Esempio n. 5
0
    def set_cmake_project_data(self):
        """Set CMake project data from dependency CMakeLists.txt."""
        data = get_project_data(self.get_source_directory())

        # project data must be found
        if data is None:
            raise CMakeProjectDataNotFoundError(
                f"Unable to get project data from {self.name}")

        self.cmake_project_name = data["name"]
        if data["version"]:
            self.cmake_project_version = version.parse(data["version"])
Esempio n. 6
0
    def test_get_single_line_name_other_version_other(self, mocker):
        """Get project name and version as single line with other data after."""
        mocked_read_text = mocker.patch.object(Path,
                                               "read_text",
                                               autospec=True)
        mocked_read_text.return_value = (
            """project(MyProject DESCRIPTION "Project description text" """
            """VERSION 0.0 LANGUAGES Fortran)""")

        data = get_project_data(Path("path"))
        assert data["name"] == "MyProject"
        assert data["version"] == "0.0"
Esempio n. 7
0
    def test_get_multi_line_name_version_other(self, mocker):
        """Get project name and version as multi line with other data inbetween."""
        mocked_read_text = mocker.patch.object(Path,
                                               "read_text",
                                               autospec=True)
        mocked_read_text.return_value = """project(
    MyProject
    DESCRIPTION
        "Project name text"
    VERSION
        0.0
)"""

        data = get_project_data(Path("path"))
        assert data["name"] == "MyProject"
        assert data["version"] == "0.0"