Ejemplo n.º 1
0
 def test_from_dict(self):
     """It can take a dictionnay as parameter but keeps defaults"""
     config_dict = {
         "module": "test_module",
         "attribute": "VERSION",
         "commit": True,
         "tag": True,
         "dryrun": True,
         "files": ["anyfile.py"],
         "bump": {
             "suffix": "final",
             "message": "Version {version}",
         },
         "prepare": {
             "part": "minor",
             "suffix": "dev",
             "message": "Update to version {version}",
         },
     }
     config = Config(config_dict)
     expected = deepcopy(DEFAULTS)
     for key, value in config_dict.items():
         if isinstance(value, dict):
             for nested_key, nested_value in value.items():
                 expected[key][nested_key] = nested_value
         else:
             expected[key] = value
     for hook in HOOKS:
         expected[hook.key] = False
     assert config == expected
Ejemplo n.º 2
0
def test_constructor_version_bad_format(workspace):
    config = Config({
        'file': 'fake.py',
    })
    workspace.write('fake.py', '__badversion__ = "1.2.3"')
    with pytest.raises(BumprError):
        Releaser(config)
Ejemplo n.º 3
0
    def test_override_from_setup_cfg(self):
        with io.open("setup.cfg", "w") as cfg:
            cfg.write(
                "\n".join(
                    [
                        "[bumpr]",
                        "file = test.py",
                        "files = README",
                        "push = true",
                        "[bumpr:bump]",
                        "message = test",
                    ]
                )
            )

        expected = deepcopy(DEFAULTS)
        expected["file"] = "test.py"
        expected["files"] = ["README"]
        expected["push"] = True
        expected["bump"]["message"] = "test"
        for hook in HOOKS:
            expected[hook.key] = False

        config = Config()
        assert config == expected
Ejemplo n.º 4
0
 def test_from_dict(self):
     '''It can take a dictionnay as parameter but keeps defaults'''
     config_dict = {
         'module': 'test_module',
         'attribute': 'VERSION',
         'commit': True,
         'tag': True,
         'dryrun': True,
         'files': ['anyfile.py'],
         'bump': {
             'suffix': 'final',
             'message': 'Version {version}',
         },
         'prepare': {
             'part': 'minor',
             'suffix': 'dev',
             'message': 'Update to version {version}',
         },
     }
     config = Config(config_dict)
     expected = deepcopy(DEFAULTS)
     for key, value in config_dict.items():
         if isinstance(value, dict):
             for nested_key, nested_value in value.items():
                 expected[key][nested_key] = nested_value
         else:
             expected[key] = value
     for hook in HOOKS:
         expected[hook.key] = False
     self.assertDictEqual(config, expected)
Ejemplo n.º 5
0
def test_prepare(workspace, mocker):
    config = Config({
        "file": "fake.py",
        "files": [str(workspace.readme)],
        "prepare": {
            "part": Version.PATCH,
            "suffix": "dev",
        },
    })
    releaser = Releaser(config)
    hook = mocker.MagicMock()
    mocker.patch.object(releaser, "hooks", [hook])
    commit = mocker.patch.object(releaser, "commit")
    tag = mocker.patch.object(releaser, "tag")

    releaser.prepare()

    assert not commit.called
    assert not tag.called
    assert hook.prepare.called

    for file in workspace.module, workspace.readme:
        with file.open() as f:
            content = f.read()
            assert "1.2.4.dev" in content
            assert "1.2.3" not in content
Ejemplo n.º 6
0
def test_constructor_version_not_found(workspace):
    config = Config({
        'file': 'fake.py'
    })
    workspace.write('fake.py', '')
    with pytest.raises(BumprError):
        Releaser(config)
Ejemplo n.º 7
0
def test_prepare(workspace, mocker):
    config = Config({
        'file': 'fake.py',
        'files': [str(workspace.readme)],
        'prepare': {
            'part': Version.PATCH,
            'suffix': 'dev',
        }
    })
    releaser = Releaser(config)
    hook = mocker.MagicMock()
    mocker.patch.object(releaser, 'hooks', [hook])
    commit = mocker.patch.object(releaser, 'commit')
    tag = mocker.patch.object(releaser, 'tag')

    releaser.prepare()

    assert not commit.called
    assert not tag.called
    assert hook.prepare.called

    for file in workspace.module, workspace.readme:
        with file.open() as f:
            content = f.read()
            assert '1.2.4.dev' in content
            assert '1.2.3' not in content
Ejemplo n.º 8
0
 def test_defaults(self):
     '''It should initialize with default values'''
     config = Config()
     expected = deepcopy(DEFAULTS)
     for hook in HOOKS:
         expected[hook.key] = False
     self.assertDictEqual(config, expected)
Ejemplo n.º 9
0
 def test_defaults(self):
     """It should initialize with default values"""
     config = Config()
     expected = deepcopy(DEFAULTS)
     for hook in HOOKS:
         expected[hook.key] = False
     assert config == expected
Ejemplo n.º 10
0
def test_commit_no_commit(workspace, mocker):
    config = Config({"file": "fake.py", "vcs": "fake", "commit": False})
    releaser = Releaser(config)
    vcs = mocker.patch.object(releaser, "vcs")

    releaser.commit("message")

    assert not vcs.commit.called
Ejemplo n.º 11
0
    def test_commit(self):
        config = Config({'file': 'fake.py', 'vcs': 'fake'})
        with workspace('fake') as wksp:
            releaser = Releaser(config)

        with patch.object(releaser, 'vcs') as vcs:
            releaser.commit('message')
            vcs.commit.assert_called_with('message')
Ejemplo n.º 12
0
 def setUp(self, mocker):
     self.releaser = mocker.MagicMock()
     self.releaser.prev_version = Version.parse("1.2.3.dev")
     self.releaser.version = Version.parse("1.2.3")
     self.releaser.next_version = Version.parse("1.2.4.dev")
     self.releaser.timestamp = datetime.now()
     self.releaser.tag_label = "v1.2.3"
     self.releaser.config = Config()
Ejemplo n.º 13
0
def test_push(workspace, mocker):
    config = Config({"file": "fake.py", "vcs": "fake", "push": True})
    releaser = Releaser(config)
    vcs = mocker.patch.object(releaser, "vcs")

    releaser.push()

    assert vcs.push.called
Ejemplo n.º 14
0
def test_push_disabled_by_default(workspace, mocker):
    config = Config({"file": "fake.py", "vcs": "fake"})
    releaser = Releaser(config)
    vcs = mocker.patch.object(releaser, "vcs")

    releaser.push()

    assert not vcs.push.called
Ejemplo n.º 15
0
def test_tag_no_tag(workspace, mocker):
    config = Config({"file": "fake.py", "vcs": "fake", "tag": False})
    releaser = Releaser(config)
    vcs = mocker.patch.object(releaser, "vcs")

    releaser.tag()

    assert not vcs.tag.called
Ejemplo n.º 16
0
def test_tag(workspace, mocker):
    config = Config({"file": "fake.py", "vcs": "fake"})
    releaser = Releaser(config)
    vcs = mocker.patch.object(releaser, "vcs")

    releaser.tag()

    vcs.tag.assert_called_with(str(releaser.version))
Ejemplo n.º 17
0
    def test_tag(self):
        config = Config({'file': 'fake.py', 'vcs': 'fake'})
        with workspace('fake') as wksp:
            releaser = Releaser(config)

        with patch.object(releaser, 'vcs') as vcs:
            releaser.tag()
            vcs.tag.assert_called_with(str(releaser.version))
Ejemplo n.º 18
0
def test_push_no_commit(workspace, mocker):
    config = Config({'file': 'fake.py', 'vcs': 'fake', 'push': True, 'commit': False})
    releaser = Releaser(config)
    vcs = mocker.patch.object(releaser, 'vcs')

    releaser.push()

    assert not vcs.push.called
Ejemplo n.º 19
0
def test_commit(workspace, mocker):
    config = Config({"file": "fake.py", "vcs": "fake"})
    releaser = Releaser(config)
    vcs = mocker.patch.object(releaser, "vcs")

    releaser.commit("message")

    vcs.commit.assert_called_with("message")
Ejemplo n.º 20
0
def test_tag_custom_pattern(workspace, mocker):
    config = Config({'file': 'fake.py', 'vcs': 'fake', 'tag_format': 'v{version}'})
    releaser = Releaser(config)
    vcs = mocker.patch.object(releaser, 'vcs')

    releaser.tag()

    vcs.tag.assert_called_with('v{0}'.format(releaser.version))
Ejemplo n.º 21
0
def test_push_disabled_by_default(workspace, mocker):
    config = Config({'file': 'fake.py', 'vcs': 'fake'})
    releaser = Releaser(config)
    vcs = mocker.patch.object(releaser, 'vcs')

    releaser.push()

    assert not vcs.push.called
Ejemplo n.º 22
0
def test_tag_no_tag(workspace, mocker):
    config = Config({'file': 'fake.py', 'vcs': 'fake', 'tag': False})
    releaser = Releaser(config)
    vcs = mocker.patch.object(releaser, 'vcs')

    releaser.tag()

    assert not vcs.tag.called
Ejemplo n.º 23
0
def test_tag(workspace, mocker):
    config = Config({'file': 'fake.py', 'vcs': 'fake'})
    releaser = Releaser(config)
    vcs = mocker.patch.object(releaser, 'vcs')

    releaser.tag()

    vcs.tag.assert_called_with(str(releaser.version))
Ejemplo n.º 24
0
def test_commit_no_commit(workspace, mocker):
    config = Config({'file': 'fake.py', 'vcs': 'fake', 'commit': False})
    releaser = Releaser(config)
    vcs = mocker.patch.object(releaser, 'vcs')

    releaser.commit('message')

    assert not vcs.commit.called
Ejemplo n.º 25
0
def test_commit(workspace, mocker):
    config = Config({'file': 'fake.py', 'vcs': 'fake'})
    releaser = Releaser(config)
    vcs = mocker.patch.object(releaser, 'vcs')

    releaser.commit('message')

    vcs.commit.assert_called_with('message')
Ejemplo n.º 26
0
def test_test(workspace, mocker):
    config = Config({
        'file': 'fake.py',
        'tests': 'test command',
    })
    releaser = Releaser(config)
    execute = mocker.patch('bumpr.releaser.execute')

    releaser.test()

    execute.assert_called_with('test command', replacements=mocker.ANY, dryrun=mocker.ANY, verbose=mocker.ANY)
Ejemplo n.º 27
0
def test_tag_custom_pattern(workspace, mocker):
    config = Config({
        "file": "fake.py",
        "vcs": "fake",
        "tag_format": "v{version}"
    })
    releaser = Releaser(config)
    vcs = mocker.patch.object(releaser, "vcs")

    releaser.tag()

    vcs.tag.assert_called_with("v{0}".format(releaser.version))
Ejemplo n.º 28
0
def test_skip_test(workspace, mocker):
    config = Config({
        "file": "fake.py",
        "tests": "test command",
        "skip_tests": True,
    })
    releaser = Releaser(config)
    execute = mocker.patch("bumpr.releaser.execute")

    releaser.test()

    assert not execute.called
Ejemplo n.º 29
0
def test_skip_test(workspace, mocker):
    config = Config({
        'file': 'fake.py',
        'tests': 'test command',
        'skip_tests': True,
    })
    releaser = Releaser(config)
    execute = mocker.patch('bumpr.releaser.execute')

    releaser.test()

    assert not execute.called
Ejemplo n.º 30
0
    def test_clean(self):
        config = Config({
            'file': 'fake.py',
            'clean': 'clean command',
        })
        with workspace('fake'):
            releaser = Releaser(config)

        with patch('bumpr.releaser.execute') as execute:
            releaser.clean()
            execute.assert_called_with('clean command',
                                       replacements=ANY,
                                       dryrun=ANY,
                                       verbose=ANY)