def test_get_fankit_exists(tmpdir): tempdir_root = tmpdir.mkdir('test_get_fankit_exists') fake_tempdir = tempdir_root.mkdir('tempdir') fake_output_dir = tempdir_root.mkdir('output_dir') fake_output_dir.mkdir(fankit.FANKIT_DIR_NAME) fankit.get_fankit(fake_tempdir.realpath(), fake_output_dir.realpath(), True) assert fake_tempdir.join(fankit.FANKIT_DIR_NAME).check(dir=1)
def test_get_fankit_download_fail(tmpdir, requests_mock, capsys): requests_mock.get('mock://foo', status_code=500) tempdir_root = tmpdir.mkdir('test_get_fankit_download') fake_tempdir = tempdir_root.mkdir('tempdir') fake_output_dir = tempdir_root.mkdir('output_dir') fankit.get_fankit(fake_tempdir.realpath(), fake_output_dir.realpath(), True) assert fake_tempdir.join(fankit.FANKIT_DIR_NAME).check(dir=0)
def test_get_fankit_download_no_redirect(tmpdir, requests_mock, capsys): requests_mock.get(fankit.FANKIT_URL, status_code=200) tempdir_root = tmpdir.mkdir('test_get_fankit_download') fake_tempdir = tempdir_root.mkdir('tempdir') fake_output_dir = tempdir_root.mkdir('output_dir') fankit.get_fankit(fake_tempdir.realpath(), fake_output_dir.realpath(), True) #assert False assert fake_tempdir.join(fankit.FANKIT_DIR_NAME).check(dir=0)
def test_get_fankit_download_not_happen_when_flag_false(tmpdir): test_fankit_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'fankit.zip') with open(test_fankit_path, mode='rb') as file: test_fankit_content = file.read() tempdir_root = tmpdir.mkdir('test_get_fankit_download') fake_tempdir = tempdir_root.mkdir('tempdir') fake_output_dir = tempdir_root.mkdir('output_dir') fankit.get_fankit(fake_tempdir.realpath(), fake_output_dir.realpath(), False) assert fake_tempdir.join(fankit.FANKIT_DIR_NAME).check(dir=0)
def test_get_fankit_download(tmpdir, requests_mock): test_fankit_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'fankit.zip') with open(test_fankit_path, mode='rb') as file: test_fankit_content = file.read() redirect_headers = { 'Location': fankit.FANKIT_URL } requests_mock.get(fankit.FANKIT_URL, headers=redirect_headers, content=test_fankit_content, status_code=200) tempdir_root = tmpdir.mkdir('test_get_fankit_download') fake_tempdir = tempdir_root.mkdir('tempdir') fake_output_dir = tempdir_root.mkdir('output_dir') fankit.get_fankit(fake_tempdir.realpath(), fake_output_dir.realpath(), True) assert fake_tempdir.join(fankit.FANKIT_DIR_NAME).check(dir=1)
def build_dashboard(config): # pragma: no coverage """Compile and render Club dashboard, get club via player.""" print('- info: requesting info for Club id: {}'.format( config['api']['club_id'])) api = ApiWrapper(config) club = api.get_club_from_api() # Create temporary directory. All file writes, until the very end, # will happen in this directory, so that no matter what we do, it # won't hose existing stuff. tempdir = tempfile.mkdtemp(config['paths']['temp_dir_name']) # Putting everything in a `try`...`finally` to ensure `tempdir` is removed # when we're done. We don't want to pollute the user's disk. try: output_path = os.path.expanduser(config['paths']['out']) # process data from API club_processed = ProcessedClub(club, config) players_processed = process_players(config, club) member_history = history.get_member_history( club.members, config['bstools']['timestamp'], io.get_previous_history(output_path)) members_processed = process_members(config, club, member_history) former_members = process_absent_members(config, member_history['members']) io.parse_templates( config, member_history, tempdir, club_processed, members_processed, players_processed, former_members, get_suggestions(config, members_processed, club_processed.required_trophies), get_scoring_rules(config)) if (config['bstools']['debug'] == True): # archive outputs of API for debugging io.dump_debug_logs( tempdir, { 'club': club.to_dict(), 'club-processed': club_processed, 'players-processed': players_processed, 'members-processed': members_processed, 'former-members': former_members, }) # if fankit is previously downloaded, it will copy fankit. Otherwise, # if fankit is enabled, it will download it. fankit.get_fankit(tempdir, output_path, config['paths']['use_fankit']) io.copy_static_assets(tempdir, config['paths']['club_logo'], config['paths']['favicon']) io.move_temp_to_output_dir(tempdir, output_path) # TODO discord.trigger_webhooks(config, members_processed) #specialization_object = Specialization.objects.get(name="My Test Specialization") # except Exception as e: # logger.error('Error bstools: {}'.format(e)) except Exception as e: print(traceback.format_exc()) finally: # Ensure that temporary directory gets deleted no matter what shutil.rmtree(tempdir)