def test_request_contents_of_language_directory( self, mock_api: MagicMock, kata_template_repo: KataTemplateRepo): kata_template_repo.get_for_language(KataLanguage('javascript')) mock_api.contents.assert_called_with( DEFAULT_CONFIG['KataGRepo']['User'], DEFAULT_CONFIG['KataGRepo']['Repo'], 'javascript')
def test_kata_template_repo(self): repo = KataTemplateRepo() assert repo.get_all() == [ KataTemplate('java', 'junit5'), KataTemplate('java', 'some-other'), KataTemplate('js', 'jasminesomething'), KataTemplate('js', 'maybe-mocha') ] assert repo.get_for_language('java') == [ KataTemplate('java', 'junit5'), KataTemplate('java', 'some-other') ]
def __init__(self): self.executor = ThreadPoolExecutor(100) self.api = GithubApi() self.file_writer = FileWriter() self.grepo = GRepo(self.api, self.file_writer, self.executor) self.kata_template_repo = HardCoded.KataTemplateRepo() self.real_kata_template_repo = KataTemplateRepo(self.api) self.sandbox_dir = Path('../sandbox') self.init_kata_service = InitKataService(self.kata_template_repo, self.grepo)
def test_template_is_not_at_root(self, mock_api: MagicMock, kata_template_repo: KataTemplateRepo): # Given: There are multiple directories at root of the language dir mock_api.contents.return_value = [ mock_dir_entry('java/junit5'), mock_dir_entry('java/hamcrest') ] # When: Fetching the available templates for java available_java_templates = kata_template_repo.get_for_language( KataLanguage('java')) # Then: All available templates are returned assert available_java_templates == [ KataTemplate(KataLanguage('java'), 'junit5'), KataTemplate(KataLanguage('java'), 'hamcrest') ]
def test_template_at_root( self, mock_api: MagicMock, config_repo, kata_template_repo: KataTemplateRepo): # Given: 'rust' is explicitly stated as having the template at its root config_repo.config['HasTemplateAtRoot'] = {'rust': True} mock_api.contents.return_value = [ mock_file_entry('rust/some_random_file.txt'), mock_dir_entry('rust/some_dir') ] # When: Fetching the available templates for rust rust_available_templates = kata_template_repo.get_for_language( KataLanguage('rust')) # Then: Only one is available and it is the root template (template_name == None) assert rust_available_templates == [ KataTemplate(KataLanguage('rust'), template_name=None) ]
def test_check_if_has_readme( self, mock_api: MagicMock, config_repo, kata_template_repo: KataTemplateRepo): # If there's no information in the config whether this language has its template at root, # try to guess by checking if there's a 'README.md' in the language root dir # Given: # - 'golang' isn't included in the list of languages w/ a template at root # - there's a 'README.md' at 'golang' dir root config_repo.config['HasTemplateAtRoot'] = {} mock_api.contents.return_value = [ mock_file_entry('golang/README.md') ] # When: Fetching the available templates for java available_java_templates = kata_template_repo.get_for_language( KataLanguage('golang')) # Then: Only one is available and it is the root template (template_name == None) assert len(available_java_templates) == 1 assert available_java_templates[0] == KataTemplate( KataLanguage('golang'), template_name=None)
def test_template_not_at_root( self, mock_api: MagicMock, config_repo, kata_template_repo: KataTemplateRepo): # Given: 'java' is explicitly stated as not having the template at its root config_repo.config['HasTemplateAtRoot'] = {'java': False} mock_api.contents.return_value = [ mock_file_entry('java/some_random_file.txt'), mock_file_entry('java/README.md'), mock_dir_entry('java/template1'), mock_dir_entry('java/template2') ] # When: Fetching the available templates for java java_available_templates = kata_template_repo.get_for_language( KataLanguage('java')) # Then: Only one is available and it is the root template (template_name == None) assert java_available_templates == [ KataTemplate(KataLanguage('java'), template_name='template1'), KataTemplate(KataLanguage('java'), template_name='template2') ]
def kata_template_repo(self, mock_api, config_repo): return KataTemplateRepo(mock_api, config_repo)
def init_repos(): self.kata_template_repo = KataTemplateRepo(self.api, self.config_repo) self.kata_language_repo = KataLanguageRepo(self.api, self.config_repo)