def test_parse_pt_04(self): with self.assertRaises(pt.MonsterError): mill_pt = pt.parse_pt(pt_path='tests/in/mill.pt', alias=self.alias, monsters=padptdb.read_monsters( 'tests/data/db/monstererror.csv', 'tests/data/db/icons'))
def test_parse_pt_02(self): """Assume that tests/in/pterror.pt does not exist. """ with self.assertRaises(pt.PTError): mill_pt = pt.parse_pt(pt_path='tests/in/pterror.pt', alias=self.alias, monsters=self.monsters)
def test_parse_pt_00(self): mill_pt = pt.parse_pt('tests/in/mill.pt', self.alias, self.monsters) self.assertEqual( mill_pt, pt.PT(title='ミル降臨', party_a=(pt.Member(monster=self.monsters[2903], assist=self.monsters[2012]), pt.Member(monster=self.monsters[2948], assist=None), pt.Member(monster=self.monsters[1730], assist=self.monsters[3162]), pt.Member(monster=self.monsters[2948], assist=None), pt.Member(monster=self.monsters[2948], assist=None)), party_b=(pt.Member(monster=self.monsters[2903], assist=self.monsters[923]), pt.Member(monster=self.monsters[2752], assist=None), pt.Member(monster=self.monsters[2948], assist=None), pt.Member(monster=self.monsters[2948], assist=None), pt.Member(monster=self.monsters[2948], assist=None)), note=('1F: Aディオス\n' '2F: Bアヴァロン\n' '3F: Aハーデス,ディオス\n' '4F: Bディオス\n' '5F: Aラー\n' '6F: Aディオス\n' '7F: Bディオス\n' '8F: A0コンボ,Bタナトス,A0コンボ,B0コンボ,A0コンボ,Bディオス\n')))
def test_parse_pt_01(self): friday_pt = pt.parse_pt('tests/in/friday.pt', self.alias, self.monsters) self.assertEqual( friday_pt, pt.PT(title='金曜ダンジョン(超地獄級)', party_a=(pt.Member(monster=self.monsters[2657], assist=None), pt.Member(monster=self.monsters[2368], assist=None), pt.Member(monster=self.monsters[2179], assist=None), pt.Member(monster=self.monsters[2179], assist=None), pt.Member(monster=self.monsters[2006], assist=None)), party_b=(pt.Member(monster=self.monsters[2657], assist=None), ), note=('1F: ハンジ,赤オーディン\n' '2F: 赤オーディン\n' '3F: 五右衛門\n' '4F: 崩す\n')))
def main(): argparser = argparse.ArgumentParser( description='generates a walkthrough sheet.') argparser.add_argument('-u', '--update', action='store_true', help='updates database') argparser.add_argument('pt', nargs='?', help='pt file to be parsed') argparser.add_argument('out', nargs='?', help='path of the output file') args = argparser.parse_args() if not args.update and args.pt is None: argparser.print_help() else: def get_conf_path(resource): return os.path.join(os.path.expanduser('~/.padpt'), resource) try: padpt_conf = conf.read_conf(get_conf_path('padpt.conf')) except FileNotFoundError as e: sys.exit('{} does not exist.'.format(e.filename)) except configparser.Error: sys.exit('There is an error in padpt.conf') def get_data_path(resource): return os.path.join(os.path.dirname(sys.modules['padpt'].__file__), 'data', resource) monsters_csv_path = get_data_path('db/monsters.csv') icons_dir = get_data_path('db/icons') if args.update: if not os.path.exists(icons_dir): os.makedirs(icons_dir) try: update.update_data(url=padpt_conf['PadPT']['DB_URL'], monsters_csv_path=monsters_csv_path, icons_dir=icons_dir) except KeyError as e: sys.exit('There is an error in padpt.conf') except urllib.error.URLError as e: sys.exit('Failed to download {}'.format( padpt_conf['PadPT']['DB_URL'])) if args.pt is not None: try: sheet.generate_sheet( pt=pt.parse_pt( pt_path=args.pt, alias=conf.read_alias(get_conf_path('alias.csv')), monsters=padptdb.read_monsters(monsters_csv_path, icons_dir)), timestamp=str(datetime.date.today()), font_path=padpt_conf['PadPT']['Font'], png_path=get_data_path('png'), out_path=(args.out if args.out is not None else os.path.splitext(args.pt)[0] + '.png')) except FileNotFoundError as e: sys.exit('{} does not exist.'.format(e.filename)) except pt.PTError as e: sys.exit('{} has a syntax error.'.format(e.pt_path)) except pt.AliasError as e: sys.exit('{} is undefined in alias.csv.'.format(e.get_name())) except pt.MonsterError as e: sys.exit('The monster whose monster ID is {}' 'is not registerd with your monster DB.'.format( e.get_monster_id())) except KeyError as e: sys.exit('There is an error in padpt.conf')
def test_parse_pt_03(self): with self.assertRaises(pt.AliasError): mill_pt = pt.parse_pt(pt_path='tests/in/aliaserror.pt', alias=self.alias, monsters=self.monsters)