def test_compile(self): project_path = os.path.join(os.path.dirname(__file__), 'test_file', 'test_compile_init_box') runner = CliRunner() try: os.mkdir(project_path) result = runner.invoke(main, ['-p', project_path, 'init']) self.assertEqual(0, result.exit_code) init_info = [ 'Downloading...', 'Unpacking...', 'Unbox successful. Enjoy it!' ] info_list = result.output.split('\n') for index, info in enumerate(init_info): self.assertEqual(info, info_list[index]) result = runner.invoke(main, ['-p', project_path, 'compile']) self.assertEqual(0, result.exit_code) compile_info = [ 'Compiling...', 'Compile hello_ontology.py', 'Compiled, Thank you', 'Generate avm file successful...' ] info_list = result.output.split('\n') for index, info in enumerate(compile_info): self.assertEqual(info, info_list[index]) finally: ensure_remove_dir_if_exists(project_path)
def test_itx_info(self): project_path = os.path.join(os.path.dirname(__file__), 'file', 'test_init_empty') try: result = self.runner.invoke(main, [ 'info', 'tx', '3fa996e1009e1194336e1c79ca2b2cfebce37a90a4281f4068b86fbae228098b' ]) # info_list = result.output.split('\n') print(result.output) finally: ensure_remove_dir_if_exists(project_path)
def test_unbox(self): box_name = 'tutorialtoken' project_path = os.path.join(os.getcwd(), 'data', 'test_unbox', box_name) ensure_path_exists(project_path) try: runner = CliRunner() result = runner.invoke(main, ['unbox', '-h']) info_list = result.output.split('\n') print(info_list) result = runner.invoke(main, ['-p', project_path, 'unbox', box_name]) info_list = result.output.split('\n') print(info_list) finally: ensure_remove_dir_if_exists(project_path)
def handle_ignorance(repo_to_path: str = ''): print('Unpacking...') box_ignore_file_path = os.path.join(repo_to_path, 'punica-box.json') try: with open(box_ignore_file_path, 'r') as f: box_ignore_files = json.load(f)['ignore'] except FileNotFoundError: return remove_file_if_exists(box_ignore_file_path) for file in box_ignore_files: try: file_path = os.path.join(repo_to_path, file) ensure_remove_dir_if_exists(file_path) remove_file_if_exists(file_path) except (PermissionError, FileNotFoundError): pass
def test_init_empty_project(self): project_path = os.path.join(os.path.dirname(__file__), 'file', 'test_init_empty') try: result = self.runner.invoke(main, ['--project', project_path, 'init']) info_list = result.output.split('\n') init_empty_info = ['Downloading...', 'Unpacking...', 'Unbox successful. Enjoy it!'] for index, info in enumerate(init_empty_info): self.assertEqual(info, info_list[index]) self.assertEqual(0, result.exit_code) init_config = InitConfig(project_path) self.assertTrue(os.path.exists(init_config.src_path())) self.assertTrue(os.path.exists(init_config.test_path())) self.assertTrue(os.path.exists(init_config.wallet_path())) self.assertTrue(os.path.exists(init_config.contract_path())) finally: ensure_remove_dir_if_exists(project_path)
def handle_ignorance(self) -> bool: unpack_spinner = Halo(text="Unpacking...", spinner='dots') unpack_spinner.start() box_ignore_file_path = path.join(self.project_dir, 'punica-box.json') try: with open(box_ignore_file_path, 'r') as f: box_ignore_files = json.load(f)['ignore'] remove_file_if_exists(box_ignore_file_path) except FileNotFoundError: unpack_spinner.fail() return False for file in box_ignore_files: try: file_path = path.join(self.project_dir, file) ensure_remove_dir_if_exists(file_path) remove_file_if_exists(file_path) except (PermissionError, FileNotFoundError): unpack_spinner.fail() return False unpack_spinner.succeed() return True
def test_deploy_cmd(self, password): project_path = os.path.join(os.path.dirname(__file__), 'data', 'test_deploy') password.return_value = 'password' try: os.mkdir(project_path) result = self.runner.invoke(main, ['-p', project_path, 'init']) self.assertEqual(0, result.exit_code) init_info = [ 'Downloading...', 'Unpacking...', 'Unbox successful. Enjoy it!', '' ] info_list = result.output.split('\n') for index, info in enumerate(info_list): self.assertEqual(init_info[index], info) result = self.runner.invoke(main, ['-p', project_path, 'compile']) print(result.output) self.assertEqual(0, result.exit_code) info_list = result.output.split('\n') print(info_list) finally: ensure_remove_dir_if_exists(project_path)
def tearDown(self): ensure_remove_dir_if_exists(path.join(self.project_path, 'build'))