From 12aa28fcf5fbd378da88ae894b867bfc068b36ed Mon Sep 17 00:00:00 2001 From: bennetrr Date: Mon, 1 Apr 2024 22:32:51 +0200 Subject: [PATCH] test: Added more (currently failing) tests --- tests/test_action.py | 194 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 194 insertions(+) diff --git a/tests/test_action.py b/tests/test_action.py index 4b2f00f..9b43a17 100644 --- a/tests/test_action.py +++ b/tests/test_action.py @@ -94,6 +94,200 @@ def test_initial(self): self.assertEqual(expected_output_beta, actual_output_beta) self.assertEqual(expected_output_prod, actual_output_prod) + def test_first_fix(self): + # Arrange + args_release = ActionArguments( + prefix='v', + suffix='pre', + previous_version_suffix='pre', + create_tag=True + ) + + expected_output_release = ActionOutputs( + version='0.0.1-pre', + version_name='v0.0.1-pre', + previous_version='', + previous_version_name='', + has_changes=True + ) + + args_beta = ActionArguments( + prefix='v', + suffix='beta', + previous_version_suffix='pre', + create_tag=True + ) + + expected_output_beta = ActionOutputs( + version='0.0.1-beta', + version_name='v0.0.1-beta', + previous_version='0.0.1-pre', # TODO: Soll das so? Oder sollte da die letzte Version mit -beta + previous_version_name='v0.0.1-pre', # stehen, bzw. '', weil es noch keine letzte Version gab + has_changes=False + ) + # TODO: Außerdem wird der Tag für beta nicht erstellt, da keine Changes. + # Der Suffix wurde aber gewechselt, deswegen muss der Tag eigentlich trotzdem erstellt werden. + + args_prod = ActionArguments( + prefix='v', + suffix='', + previous_version_suffix='beta', + create_tag=True + ) + + expected_output_prod = ActionOutputs( + version='0.0.1', + version_name='v0.0.1', + previous_version='', + previous_version_name='', + has_changes=False + ) + + # Act + self.repo.commit(CommitMessages.FIX) + + self.repo.merge('main', 'release') + actual_output_release = run_action(args_release) + + self.repo.merge('release', 'release-beta') + actual_output_beta = run_action(args_beta) + + self.repo.merge('release-beta', 'release-prod') + actual_output_prod = run_action(args_prod) + + # Assert + self.assertEqual(expected_output_release, actual_output_release) + self.assertEqual(expected_output_beta, actual_output_beta) + self.assertEqual(expected_output_prod, actual_output_prod) + + def test_first_feature(self): + # Arrange + args_release = ActionArguments( + prefix='v', + suffix='pre', + previous_version_suffix='pre', + create_tag=True + ) + + expected_output_release = ActionOutputs( + version='0.1.0-pre', + version_name='v0.1.0-pre', + previous_version='', + previous_version_name='', + has_changes=True + ) + + args_beta = ActionArguments( + prefix='v', + suffix='beta', + previous_version_suffix='pre', + create_tag=True + ) + + expected_output_beta = ActionOutputs( + version='0.1.0-beta', + version_name='v0.1.0-beta', + previous_version='0.1.0-pre', + previous_version_name='v0.1.0-pre', + has_changes=False + ) + + args_prod = ActionArguments( + prefix='v', + suffix='', + previous_version_suffix='beta', + create_tag=True + ) + + expected_output_prod = ActionOutputs( + version='0.1.0', + version_name='v0.1.0', + previous_version='', + previous_version_name='', + has_changes=False + ) + + # Act + self.repo.commit(CommitMessages.FEATURE) + + self.repo.merge('main', 'release') + actual_output_release = run_action(args_release) + + self.repo.merge('release', 'release-beta') + actual_output_beta = run_action(args_beta) + + self.repo.merge('release-beta', 'release-prod') + actual_output_prod = run_action(args_prod) + + # Assert + self.assertEqual(expected_output_release, actual_output_release) + self.assertEqual(expected_output_beta, actual_output_beta) + self.assertEqual(expected_output_prod, actual_output_prod) + + def test_first_breaking(self): + # Arrange + args_release = ActionArguments( + prefix='v', + suffix='pre', + previous_version_suffix='pre', + create_tag=True + ) + + expected_output_release = ActionOutputs( + version='1.0.0-pre', + version_name='v1.0.0-pre', + previous_version='', + previous_version_name='', + has_changes=True + ) + + args_beta = ActionArguments( + prefix='v', + suffix='beta', + previous_version_suffix='pre', + create_tag=True + ) + + expected_output_beta = ActionOutputs( + version='1.0.0-beta', + version_name='v1.0.0-beta', + previous_version='1.0.0-pre', + previous_version_name='v1.0.0-pre', + has_changes=False + ) + + args_prod = ActionArguments( + prefix='v', + suffix='', + previous_version_suffix='beta', + create_tag=True + ) + + expected_output_prod = ActionOutputs( + version='1.0.0', + version_name='v1.0.0', + previous_version='', + previous_version_name='', + has_changes=False + ) + + # Act + self.repo.commit(CommitMessages.BREAKING_FEATURE) + + self.repo.merge('main', 'release') + actual_output_release = run_action(args_release) + + self.repo.merge('release', 'release-beta') + actual_output_beta = run_action(args_beta) + + self.repo.merge('release-beta', 'release-prod') + actual_output_prod = run_action(args_prod) + + # Assert + self.assertEqual(expected_output_release, actual_output_release) + self.assertEqual(expected_output_beta, actual_output_beta) + self.assertEqual(expected_output_prod, actual_output_prod) + if __name__ == '__main__': unittest.main()