def test_preserve_date(self):
     game_file = GameFile('Game (2017-06-06)(Company).tzx')
     tosec_output_name = game_file.getTOSECName()
     self.assertEqual(tosec_output_name, 'Game (2017-06-06)(Company).tzx')
     db = Database()
     game = db.getGameByWosID(30408)
     game_file = GameFile(
         'tosec\itch.io\Games\Robot 1 in... The Ship of Doom (2017-06-18)(Recardo, Mat)(48K-128K).tzx',
         source='tosec')
     game.addFile(game_file)
     self.assertEqual(game_file.release.year, '2017-06-18')
     tosec_output_name = game_file.getTOSECName()
     self.assertEqual(
         tosec_output_name,
         'Robot 1 in... The Ship of Doom (2017-06-18)(Recardo, Mat)(48K-128K).tzx'
     )
 def test_file_length(self):
     game_file = GameFile(
         "ZX Spectrum+ User Guide Companion Cassette (1984)(Dorling Kindersley)(GB)(es)(Side A).tap"
     )
     game_file.notes = "[aka ZX Spectrum+ GuideCassette De L'Utilisateur][aka ZX Spectrum+ Kaseta sa Uputstvom za Upotrebu][aka ZX Spectrum+ Guia Para el Empleo][aka Cassetta Di Guida Per L'Utente][aka Kilavuz Ve Yardimci Kaset][aka Cassette Bij Handleiding][aka Kassette fur Benutzer][aka Kayttajan Opaskasetti]"
     game_file.alt_dest = game_file.getTOSECName()
     MAX_GAME_NAME_LENGTH = 200
     MAX_DESTINATION_PATH_LENGTH = 200
     if len(game_file.alt_dest) > MAX_DESTINATION_PATH_LENGTH:
         for game_name_length in range(MAX_GAME_NAME_LENGTH,
                                       MIN_GAME_NAME_LENGTH - 10, -10):
             game_file.removeAka()
             game_file.alt_dest = game_file.getTOSECName(
                 game_name_length=game_name_length)
             if len(game_file.alt_dest) <= MAX_DESTINATION_PATH_LENGTH:
                 break
     self.assertLessEqual(len(game_file.alt_dest), 200)
 def test_country(self):
     game_file = GameFile('Game (19xx)(Publisher).tap')
     game_file.release.country = 'GB'
     game_file.language = 'en'
     self.assertEqual(game_file.getTOSECName(),
                      'Game (19xx)(Publisher).tap')
     game_file.release.country = 'CZ'
     game_file.language = 'cz'
     self.assertEqual(game_file.getTOSECName(),
                      'Game (19xx)(Publisher)(CZ).tap')
     game_file.release.country = 'GB'
     game_file.language = 'es'
     self.assertEqual(game_file.getTOSECName(),
                      'Game (19xx)(Publisher)(GB)(es).tap')
     game_file.release.country = 'RU'
     game_file.language = 'en'
     self.assertEqual(game_file.getTOSECName(),
                      'Game (19xx)(Publisher)(RU)(en).tap')
     game_file.release.country = ''
     game_file.language = 'en'
     self.assertEqual(game_file.getTOSECName(),
                      'Game (19xx)(Publisher).tap')
     game_file = GameFile(
         'Sinclair ZX Spectrum\Games\[TAP]\Mihotabpa (19xx)(-)(ru).tap')
     self.assertEqual(game_file.getTOSECName(),
                      'Mihotabpa (19xx)(-)(ru).tap')
     game_file = GameFile(
         'Sinclair ZX Spectrum\Games\[TAP]\Mihotabpa (19xx)(-)(ru)[tr ru].tap'
     )
     self.assertEqual(game_file.getTOSECName(),
                      'Mihotabpa (19xx)(-)[tr ru].tap')
 def test_dot_in_game_name(self):
     game = Game('H.E.R.O.')
     file = GameFile('H.E.R.O. (19xx)(-).tap')
     file.game = game
     self.assertEqual(file.getTOSECName(), 'H.E.R.O. (19xx)(-).tap')
 def test_adult_game(self):
     game_file = GameFile('Game (19xx)(-).tap')
     game_file.game.x_rated = True
     game_file.alt_mod_flag = '[a]'
     tosec_name = game_file.getTOSECName()
     self.assertEqual(tosec_name, 'Game (19xx)(-)[a][adult].tap')
 def test_picking_best_release_name(self):
     g = Game('Dizzy 2 - Treasure Island Dizzy')
     r = GameRelease(game=g)
     f = GameFile('Dizzy II - Treasure Island Dizzy (19xx)(-).tap')
     r.addFile(f)
     f.setAka()
     self.assertEqual(f.getTOSECName(),
                      'Dizzy 2 - Treasure Island Dizzy (19xx)(-).tap')
     g = Game('Bug-Eyes')
     r = GameRelease(game=g)
     f = GameFile('Bor-Fies (19xx)(-)[aka Bug-Eyes].tap')
     r.addFile(f)
     f.setAka()
     self.assertEqual(f.getTOSECName(),
                      'Bug-Eyes (19xx)(-)[aka Bor-Fies].tap')
     db = Database()
     g = db.getGameByWosID(1799)
     r = g.releases[3]
     f = GameFile(
         'Sinclair ZX Spectrum\Games\[TZX]\Picapiedra, Los (1989)(MCM Software)[48-128K][aka Flintstones, The].tap'
     )
     r.addFile(f)
     f.setAka()
     self.assertEqual(
         f.getTOSECName(),
         'Picapiedra, Los (1989)(MCM)(48K-128K)(ES)(en)[aka Flintstones, The].tap'
     )
     g = Game('Alcatraz II')
     r = GameRelease(
         game=g,
         aliases=
         'Alcatraz II - The Doomsday Mission/Alcatraz II/Alcatrazz 2 - The Doomsday Mission'
         .split('/'))
     f = GameFile('Doomsday Mission.tap')
     r.addFile(f)
     f.setAka()
     self.assertEqual(
         f.getTOSECName(),
         'Alcatraz II - The Doomsday Mission (19xx)(-)[aka Alcatrazz 2 - The Doomsday Mission].tap'
     )
     g = Game('Cribbage')
     r = GameRelease(game=g)
     f = GameFile('Cribbage - Intro (19xx)(-).tap')
     r.addFile(f)
     f.setAka()
     self.assertEqual(f.getTOSECName(), 'Cribbage (19xx)(-).tap')
     g = Game('Everyday Tale of a Seeker of Gold, An')
     r = GameRelease(game=g, aliases= \
         'Everyday Tale of a Seeker of Gold, An/An Everyday Tale of a Seeker of Gold'.split('/'))
     f = GameFile('Tale of a Seeker of Gold.mgt')
     r.addFile(f)
     f.setAka()
     self.assertEqual(
         f.getTOSECName(),
         'Everyday Tale of a Seeker of Gold, An (19xx)(-).mgt')
     g = Game('Live and Let Die')
     r = GameRelease(
         game=g,
         aliases=['Aquablast', 'Live and Let Die - The Computer Game'])
     f = GameFile('Aquablast.tap')
     r.addFile(f)
     f.setAka()
     self.assertEqual(
         f.getTOSECName(),
         'Live and Let Die - The Computer Game (19xx)(-)[aka Aquablast].tap'
     )
     g = Game('Where Time Stood Still')
     r = GameRelease(game=g,
                     aliases=[
                         'Land That Time Forgot, The',
                         'Where Time Stood Still', 'Tibet'
                     ])
     f = GameFile('where time stood still.tap')
     r.addFile(f)
     f.setAka()
     self.assertEqual(
         f.getTOSECName(),
         'Where Time Stood Still (19xx)(-)[aka Land That Time Forgot, The][aka Tibet].tap'
     )
     g = Game('Adventures of St. Bernard, The')
     r = GameRelease(game=g, aliases= \
         'Adventures of Saint Bernard, The/Adventures of St. Bernard, The/The Adventures of St. Bernard'.split('/'))
     f = GameFile('saint bernard.tap')
     r.addFile(f)
     f.setAka()
     self.assertEqual(
         f.getTOSECName(),
         'Adventures of St. Bernard, The (19xx)(-)[aka Adventures of Saint Bernard, The].tap'
     )