File: test_release.py

package info (click to toggle)
python-sphinx-chango 0.6.0-1
  • links: PTS
  • area: main
  • in suites: sid
  • size: 1,840 kB
  • sloc: python: 4,909; javascript: 74; makefile: 23
file content (46 lines) | stat: -rw-r--r-- 1,838 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#  SPDX-FileCopyrightText: 2024-present Hinrich Mahler <chango@mahlerhome.de>
#
#  SPDX-License-Identifier: MIT

import datetime as dtm

import pytest
from click import UsageError

from chango import Version
from tests.cli.conftest import ReuseCliRunner


class TestRelease:
    @pytest.mark.parametrize("has_unreleased", [True, False])
    def test_release_basic(self, cli: ReuseCliRunner, mock_chango_instance, has_unreleased):
        mock_chango_instance.release.return_value = has_unreleased
        result = cli.invoke(args=["release", "--uid", "1.0.0", "--date", "2024-01-01"])

        assert result.check_exit_code()
        assert result.stdout == (
            "Released version 1.0.0 on 2024-01-01\n"
            if has_unreleased
            else "No unreleased changes found.\n"
        )

        assert len(mock_chango_instance.release.call_args_list) == 1
        assert mock_chango_instance.release.call_args_list[0].args == (
            Version("1.0.0", dtm.date(2024, 1, 1)),
        )

    def test_release_default_date(self, cli: ReuseCliRunner, mock_chango_instance):
        result = cli.invoke(args=["release", "--uid", "1.0.0"])
        assert result.check_exit_code()
        assert result.stdout == f"Released version 1.0.0 on {dtm.date.today()}\n"

        assert len(mock_chango_instance.release.call_args_list) == 1
        assert mock_chango_instance.release.call_args_list[0].args == (
            Version("1.0.0", dtm.date.today()),
        )

    def test_release_invalid_date(self, cli: ReuseCliRunner, mock_chango_instance):
        result = cli.invoke(args=["release", "--uid", "1.0.0", "--date", "invalid"])
        assert result.check_exit_code(UsageError.exit_code)
        assert "Invalid value for '--date'" in result.stderr
        assert len(mock_chango_instance.release.call_args_list) == 0