def test_history_limit(runner): history_limit = 5 with mock.patch('easyci.commands.test.load_user_config') as mocked: mocked.return_value = { 'tests': ['true', 'true'], 'history_limit': history_limit, 'collect_results': [], } for x in range(history_limit + 1): assert not os.system('touch {x} && git add {x}'.format(x=x)) result = runner.invoke(cli, ['test']) assert result.exit_code == 0 result = runner.invoke(cli, ['test']) git = GitVcs() evidence = os.path.join(git.private_dir(), 'passed') with open(evidence, 'r') as f: signatures = f.read().split() assert len(signatures) == history_limit assert signatures[-1] == git.get_signature()
def test_already_staged_or_committed(runner): config = { 'tests': ['true', 'true'], 'history_limit': 1, 'collect_results': [], } git = GitVcs() signature = git.get_signature() # test staged stage_signature(git, signature) with mock.patch('easyci.commands.test.load_user_config') as mocked: mocked.return_value = config result = runner.invoke(cli, ['test']) assert result.exit_code == exit_codes.ALREADY_RUNNING assert 'In Progress' in result.output # test committed commit_signature(git, config, signature) with mock.patch('easyci.commands.test.load_user_config') as mocked: mocked.return_value = config result = runner.invoke(cli, ['test']) assert result.exit_code == exit_codes.SUCCESS assert 'OK' in result.output