Beispiel #1
0
            def test_with_valid_template(
                    self, tmp_path: Path,
                    kata_language_repo: HardCoded.KataLanguageRepo,
                    kata_template_repo: HardCoded.KataTemplateRepo,
                    mock_grepo: MagicMock, init_kata_service: InitKataService):
                # Given: Template is available and parent_dir is valid
                kata_language_repo.available_languages = ['java']
                kata_template_repo.available_templates = {
                    'java': ['junit5', 'hamcrest']
                }
                kata_name = 'my_kata'
                template_lang = 'java'
                template_name = 'junit5'
                parent_dir = tmp_path

                # When: Initializing the Kata
                init_kata_service.init_kata(parent_dir, kata_name,
                                            template_lang, template_name)

                # Then:
                # - File URLs have been been fetched with the correct Username/GithubRepo/Subpath
                mock_grepo.get_files_to_download.assert_called_with(
                    user=DEFAULT_CONFIG['KataGRepo']['User'],
                    repo=DEFAULT_CONFIG['KataGRepo']['Repo'],
                    path='java/junit5')
                # - Files are requested to be downloaded in parent_dir/kata_name
                #   Note: MOCK_FILES_TO_DOWNLOAD are set in the mock_grepo fixture initialization
                mock_grepo.download_files_at_location.assert_called_with(
                    parent_dir / kata_name, MOCK_FILES_TO_DOWNLOAD)
Beispiel #2
0
 def test_valid_case(self, init_kata_service: InitKataService,
                     kata_language_repo: HardCoded.KataLanguageRepo):
     kata_language_repo.available_languages = ['java', 'python']
     available_languages = init_kata_service.list_available_languages()
     assert available_languages == [
         KataLanguage('java'),
         KataLanguage('python')
     ]
Beispiel #3
0
 def test_language_doesnt_exist(
         self, init_kata_service: InitKataService,
         kata_language_repo: HardCoded.KataLanguageRepo,
         kata_template_repo: HardCoded.KataTemplateRepo):
     kata_language_repo.available_languages = ['java']
     kata_template_repo.available_templates = {
         'java': ['junit5', 'hamcrest']
     }
     with pytest.raises(
             KataLanguageNotFound) as language_not_found_error:
         init_kata_service.list_available_templates('python')
     assert language_not_found_error.value.available_languages == [
         KataLanguage('java')
     ]
Beispiel #4
0
 def test_valid_language(
         self, init_kata_service: InitKataService,
         kata_language_repo: HardCoded.KataLanguageRepo,
         kata_template_repo: HardCoded.KataTemplateRepo):
     kata_language_repo.available_languages = ['java']
     kata_template_repo.available_templates = {
         'java': ['junit5', 'hamcrest']
     }
     available_templates_for_java = init_kata_service.list_available_templates(
         'java')
     assert available_templates_for_java == [
         KataTemplate(KataLanguage('java'), 'junit5'),
         KataTemplate(KataLanguage('java'), 'hamcrest')
     ]
Beispiel #5
0
                def test_template_name_isnt_given_but_multiple_options_are_available(
                        self, tmp_path: Path,
                        init_kata_service: InitKataService,
                        kata_language_repo: HardCoded.KataLanguageRepo,
                        kata_template_repo: HardCoded.KataTemplateRepo):
                    with pytest.raises(
                            KataTemplateNotFound) as template_not_found_error:
                        kata_language_repo.available_languages = ['java']
                        kata_template_repo.available_templates = {
                            'java': ['junit5', 'hamcrest']
                        }
                        init_kata_service.init_kata(tmp_path, VALID_KATA_NAME,
                                                    'java', None)

                    assert template_not_found_error.value.available_templates == \
                           [KataTemplate(KataLanguage('java'), 'junit5'),
                            KataTemplate(KataLanguage('java'), 'hamcrest')]
Beispiel #6
0
                def test_language_doesnt_exist(
                        self, tmp_path: Path,
                        init_kata_service: InitKataService,
                        kata_language_repo: HardCoded.KataLanguageRepo,
                        kata_template_repo: HardCoded.KataTemplateRepo):
                    with pytest.raises(
                            KataLanguageNotFound) as language_not_found_error:
                        kata_language_repo.available_languages = ['java']
                        kata_template_repo.available_templates = {
                            'java': ['junit5', 'hamcrest']
                        }
                        init_kata_service.init_kata(tmp_path, VALID_KATA_NAME,
                                                    'python', NOT_USED)

                    assert language_not_found_error.value.available_languages == [
                        KataLanguage('java')
                    ]
Beispiel #7
0
                def test_template_name_doesnt_exist_template_at_root(
                        self, tmp_path: Path,
                        init_kata_service: InitKataService,
                        kata_language_repo: HardCoded.KataLanguageRepo,
                        kata_template_repo: HardCoded.KataTemplateRepo):
                    with pytest.raises(
                            KataTemplateNotFound) as template_not_found_error:
                        kata_language_repo.available_languages = ['java']
                        kata_template_repo.available_templates = {
                            'java': [None]
                        }
                        init_kata_service.init_kata(
                            tmp_path, VALID_KATA_NAME, 'java',
                            'some_framework_thats_not_junit5')

                    assert template_not_found_error.value.available_templates == [
                        KataTemplate(KataLanguage('java'), None)
                    ]
Beispiel #8
0
                def test_only_one_template_at_root(
                        self, tmp_path: Path,
                        kata_language_repo: HardCoded.KataLanguageRepo,
                        kata_template_repo: HardCoded.KataTemplateRepo,
                        mock_grepo: MagicMock,
                        init_kata_service: InitKataService):
                    # Given: Template name not specified but only one available at root (sub-path == None)
                    kata_language_repo.available_languages = ['java']
                    kata_template_repo.available_templates = {'java': [None]}
                    kata_name = 'my_kata'
                    template_lang = 'java'
                    template_name = None

                    # When: Initializing the Kata
                    init_kata_service.init_kata(tmp_path, kata_name,
                                                template_lang, template_name)

                    # Then: File URLs have been been fetched without any sub-path
                    mock_grepo.get_files_to_download.assert_called_with(
                        user=DEFAULT_CONFIG['KataGRepo']['User'],
                        repo=DEFAULT_CONFIG['KataGRepo']['Repo'],
                        path='java')