def test_retrieve(self):
        f = os.path.join(os.path.dirname(__file__), '..', '..', 'resources', 'tests', 'testdata',
                         'nfo', 'Amiga', 'Arkanoid I.nfo')

        scraper = NFO_Scraper()
        scraper.nfo_file = f

        result = scraper.retrieve(1, 'Amiga')

        self.assertEqual(["Arkanoid"], result['Game'])
        self.assertEqual(["1987"], result['ReleaseYear'])
        self.assertEqual(["Discovery"], result['Publisher'])
        self.assertEqual(["Taito"], result['Developer'])
        self.assertEqual(["Top-Down"], result['Perspective'])
        self.assertEqual(["Joystick"], result['Controller'])
        self.assertEqual(["Floppy"], result['Media'])
        self.assertEqual(["USA"], result['Region'])
        self.assertEqual(["v1.00"], result['Version'])
        self.assertEqual(["1"], result['Players'])
        self.assertEqual(["0"], result['LaunchCount'])
        self.assertEqual(["0"], result['IsFavorite'])
        self.assertEqual(["3.8"], result['Rating'])
        self.assertEqual(["128"], result['Votes'])
        self.assertTrue(result['Description'][0].startswith("The original Breakout concept involves controlling a bat at the bottom of the screen"))
        self.assertEqual(len(result['Genre']), 2)
        self.assertIn("Action", result['Genre'])
        self.assertIn("Platform", result['Genre'])
    def test_createNfoFromDesc_newfile_missinginfos(self):
        xbmcaddon._settings['rcb_nfoFolder'] = './testdata/nfo/'

        self.assertFalse(os.path.isfile('./testdata/nfo/Amiga/Airborne Ranger.nfo'), 'nfo file should not exist')

        writer = NfoWriter()
        writer.createNfoFromDesc('Airborne Ranger', #gamename
                                 '', #plot
                                 'Amiga', #romCollectionname
                                 '', #publisher
                                 '', #developer
                                 '', #year
                                 '', #players
                                 '', #rating
                                 '', #votes
                                 '', #url
                                 '', #region
                                 '', #media
                                 '', #perspective
                                 '', #controller
                                 '', #originalTitle
                                 '', #alternateTitle
                                 '', #version
                                 [], #genreList
                                 '', #isFavorite
                                 '', #launchCount
                                 './testdata/roms/Amiga/Airborne Ranger.adf', #romFile
                                 'Airborne Ranger', #gamenameFromFile
                                 {}, #artworkfiles
                                 {} #artworkurls
                                    )

        self.assertTrue(os.path.isfile('./testdata/nfo/Amiga/Airborne Ranger.nfo'), 'Expected nfo file to be written')

        #use nfo scraper to read the file
        scraper = NFO_Scraper()
        scraper.nfo_file = './testdata/nfo/Amiga/Airborne Ranger.nfo'

        result = scraper.retrieve(1, 'Amiga')

        self.assertEqual(["Airborne Ranger"], result['Game'])
        self.assertEqual([None], result['OriginalTitle'])
        self.assertEqual([None], result['AlternateTitle'])
        self.assertEqual([None], result['ReleaseYear'])
        self.assertEqual([None], result['Publisher'])
        self.assertEqual([None], result['Developer'])
        self.assertEqual([None], result['Perspective'])
        self.assertEqual([None], result['Controller'])
        self.assertEqual([None], result['Media'])
        self.assertEqual([None], result['Region'])
        self.assertEqual([None], result['Version'])
        self.assertEqual([None], result['Players'])
        self.assertEqual([None], result['LaunchCount'])
        self.assertEqual([None], result['IsFavorite'])
        self.assertEqual([None], result['Rating'])
        self.assertEqual([None], result['Votes'])
        self.assertEqual([None], result['Description'])
        self.assertEqual(len(result['Genre']), 0)

        os.remove('./testdata/nfo/Amiga/Airborne Ranger.nfo')
Esempio n. 3
0
    def test_retrieve(self):
        f = os.path.join(os.path.dirname(__file__), '..', '..', 'resources',
                         'tests', 'testdata', 'nfo', 'Amiga', 'Arkanoid I.nfo')

        scraper = NFO_Scraper()
        scraper.nfo_file = f

        result = scraper.retrieve(1, 'Amiga')

        self.assertEqual(["Arkanoid"], result['Game'])
        self.assertEqual(["1987"], result['ReleaseYear'])
        self.assertEqual(["Discovery"], result['Publisher'])
        self.assertEqual(["Taito"], result['Developer'])
        self.assertEqual(["Top-Down"], result['Perspective'])
        self.assertEqual(["Joystick"], result['Controller'])
        self.assertEqual(["Floppy"], result['Media'])
        self.assertEqual(["USA"], result['Region'])
        self.assertEqual(["v1.00"], result['Version'])
        self.assertEqual(["1"], result['Players'])
        self.assertEqual(["0"], result['LaunchCount'])
        self.assertEqual(["0"], result['IsFavorite'])
        self.assertEqual(["3.8"], result['Rating'])
        self.assertEqual(["128"], result['Votes'])
        self.assertTrue(result['Description'][0].startswith(
            "The original Breakout concept involves controlling a bat at the bottom of the screen"
        ))
        self.assertEqual(len(result['Genre']), 2)
        self.assertIn("Action", result['Genre'])
        self.assertIn("Platform", result['Genre'])
    def test_search(self):
        f = os.path.join(os.path.dirname(__file__), '..', '..', 'resources', 'tests', 'testdata',
                         'nfo', 'Amiga', 'Arkanoid I.nfo')

        scraper = NFO_Scraper()
        scraper.nfo_file = f

        results = scraper.search("Arkanoid")

        self.assertEqual(1, len(results))
        self.assertEqual("Arkanoid", results[0]['id'])
        self.assertEqual("Arkanoid", results[0]['title'])
        with self.assertRaises(KeyError):
            results[0]['SearchKey']
Esempio n. 5
0
    def test_search(self):
        f = os.path.join(os.path.dirname(__file__), '..', '..', 'resources',
                         'tests', 'testdata', 'nfo', 'Amiga', 'Arkanoid I.nfo')

        scraper = NFO_Scraper()
        scraper.nfo_file = f

        results = scraper.search("Arkanoid")

        self.assertEqual(1, len(results))
        self.assertEqual("Arkanoid", results[0]['id'])
        self.assertEqual("Arkanoid", results[0]['title'])
        with self.assertRaises(KeyError):
            results[0]['SearchKey']
    def test_createNfoFromDesc_newfile(self):
        xbmcaddon._settings['rcb_nfoFolder'] = './testdata/nfo/'

        self.assertFalse(
            os.path.isfile('./testdata/nfo/Amiga/Airborne Ranger.nfo'),
            'nfo file should not exist')

        writer = NfoWriter()
        game_row = [None] * GameView.NUM_COLUMNS
        game_row[GameView.COL_NAME] = 'Airborne Ranger'
        game_row[
            GameView.
            COL_description] = "Description with some special characters: ' & <  >"
        game_row[GameView.COL_publisher] = '"MicroProse"'
        game_row[GameView.COL_developer] = 'Imagitec'
        game_row[GameView.COL_year] = '1989'
        game_row[GameView.COL_maxPlayers] = '1'
        game_row[GameView.COL_rating] = '3.2'
        game_row[GameView.COL_numVotes] = '128'
        game_row[GameView.COL_url] = ''
        game_row[GameView.COL_region] = 'USA'
        game_row[GameView.COL_media] = 'Floppy'
        game_row[GameView.COL_perspective] = 'Top-Down'
        game_row[GameView.COL_controllerType] = 'Joystick'
        game_row[GameView.COL_originalTitle] = 'Airborne Ranger'
        game_row[GameView.COL_alternateTitle] = 'Airborne Ranger'
        game_row[GameView.COL_version] = 'v1.00'
        game_row[GameView.COL_genre] = 'Action, Simulation'
        game_row[GameView.COL_isFavorite] = '1'
        game_row[GameView.COL_launchCount] = '1'

        writer.createNfoFromDesc(game_row, 'Amiga',
                                 './testdata/roms/Amiga/Airborne Ranger.adf',
                                 'Airborne Ranger', {}, {})

        self.assertTrue(
            os.path.isfile('./testdata/nfo/Amiga/Airborne Ranger.nfo'),
            'Expected nfo file to be written')

        #use nfo scraper to read the file
        scraper = NFO_Scraper()
        scraper.nfo_file = './testdata/nfo/Amiga/Airborne Ranger.nfo'

        result = scraper.retrieve(1, 'Amiga')

        self.assertEqual(["Airborne Ranger"], result['Game'])
        self.assertEqual(["Airborne Ranger"], result['OriginalTitle'])
        self.assertEqual(["Airborne Ranger"], result['AlternateTitle'])
        self.assertEqual(["1989"], result['ReleaseYear'])
        self.assertEqual(['"MicroProse"'], result['Publisher'])
        self.assertEqual(["Imagitec"], result['Developer'])
        self.assertEqual(["Top-Down"], result['Perspective'])
        self.assertEqual(["Joystick"], result['Controller'])
        self.assertEqual(["Floppy"], result['Media'])
        self.assertEqual(["USA"], result['Region'])
        self.assertEqual(["v1.00"], result['Version'])
        self.assertEqual(["1"], result['Players'])
        self.assertEqual(["1"], result['LaunchCount'])
        self.assertEqual(["1"], result['IsFavorite'])
        self.assertEqual(["3.2"], result['Rating'])
        self.assertEqual(["128"], result['Votes'])
        self.assertTrue(result['Description'][0].startswith(
            "Description with some special characters: ' & <  >"))
        self.assertEqual(len(result['Genre']), 2)
        self.assertIn("Action", result['Genre'])
        self.assertIn("Simulation", result['Genre'])

        os.remove('./testdata/nfo/Amiga/Airborne Ranger.nfo')
    def test_createNfoFromDesc_newfile_missinginfos(self):
        xbmcaddon._settings['rcb_nfoFolder'] = './testdata/nfo/'

        self.assertFalse(
            os.path.isfile('./testdata/nfo/Amiga/Airborne Ranger.nfo'),
            'nfo file should not exist')

        writer = NfoWriter()

        game_row = [None] * GameView.NUM_COLUMNS
        game_row[GameView.COL_NAME] = 'Airborne Ranger'
        game_row[GameView.COL_description] = ''
        game_row[GameView.COL_publisher] = ''
        game_row[GameView.COL_developer] = ''
        game_row[GameView.COL_year] = ''
        game_row[GameView.COL_maxPlayers] = ''
        game_row[GameView.COL_rating] = ''
        game_row[GameView.COL_numVotes] = ''
        game_row[GameView.COL_url] = ''
        game_row[GameView.COL_region] = ''
        game_row[GameView.COL_media] = ''
        game_row[GameView.COL_perspective] = ''
        game_row[GameView.COL_controllerType] = ''
        game_row[GameView.COL_originalTitle] = ''
        game_row[GameView.COL_alternateTitle] = ''
        game_row[GameView.COL_version] = ''
        game_row[GameView.COL_genre] = ''
        game_row[GameView.COL_isFavorite] = ''
        game_row[GameView.COL_launchCount] = ''

        writer.createNfoFromDesc(game_row, 'Amiga',
                                 './testdata/roms/Amiga/Airborne Ranger.adf',
                                 'Airborne Ranger', {}, {})

        self.assertTrue(
            os.path.isfile('./testdata/nfo/Amiga/Airborne Ranger.nfo'),
            'Expected nfo file to be written')

        #use nfo scraper to read the file
        scraper = NFO_Scraper()
        scraper.nfo_file = './testdata/nfo/Amiga/Airborne Ranger.nfo'

        result = scraper.retrieve(1, 'Amiga')

        self.assertEqual(["Airborne Ranger"], result['Game'])
        self.assertEqual([None], result['OriginalTitle'])
        self.assertEqual([None], result['AlternateTitle'])
        self.assertEqual([None], result['ReleaseYear'])
        self.assertEqual([None], result['Publisher'])
        self.assertEqual([None], result['Developer'])
        self.assertEqual([None], result['Perspective'])
        self.assertEqual([None], result['Controller'])
        self.assertEqual([None], result['Media'])
        self.assertEqual([None], result['Region'])
        self.assertEqual([None], result['Version'])
        self.assertEqual([None], result['Players'])
        self.assertEqual([None], result['LaunchCount'])
        self.assertEqual([None], result['IsFavorite'])
        self.assertEqual([None], result['Rating'])
        self.assertEqual([None], result['Votes'])
        self.assertEqual([None], result['Description'])
        self.assertEqual(len(result['Genre']), 0)

        os.remove('./testdata/nfo/Amiga/Airborne Ranger.nfo')
    def test_createNfoFromDesc_newfile(self):
        xbmcaddon._settings['rcb_nfoFolder'] = './testdata/nfo/'

        self.assertFalse(os.path.isfile('./testdata/nfo/Amiga/Airborne Ranger.nfo'), 'nfo file should not exist')

        writer = NfoWriter()
        writer.createNfoFromDesc('Airborne Ranger', #gamename
                                 "Description with some special characters: ' & <  >", #plot
                                 'Amiga', #romCollectionname
                                 '"MicroProse"', #publisher
                                 'Imagitec', #developer
                                 '1989', #year
                                 '1', #players
                                 '3.2', #rating
                                 '128', #votes
                                 '', #url
                                 'USA', #region
                                 'Floppy', #media
                                 'Top-Down', #perspective
                                 'Joystick', #controller
                                 'Airborne Ranger', #originalTitle
                                 'Airborne Ranger', #alternateTitle
                                 'v1.00', #version
                                 ['Action', 'Simulation'], #genreList
                                 '1', #isFavorite
                                 '1', #launchCount
                                 './testdata/roms/Amiga/Airborne Ranger.adf', #romFile
                                 'Airborne Ranger', #gamenameFromFile
                                 {}, #artworkfiles
                                 {} #artworkurls
                                    )

        self.assertTrue(os.path.isfile('./testdata/nfo/Amiga/Airborne Ranger.nfo'), 'Expected nfo file to be written')

        #use nfo scraper to read the file
        scraper = NFO_Scraper()
        scraper.nfo_file = './testdata/nfo/Amiga/Airborne Ranger.nfo'

        result = scraper.retrieve(1, 'Amiga')

        self.assertEqual(["Airborne Ranger"], result['Game'])
        self.assertEqual(["Airborne Ranger"], result['OriginalTitle'])
        self.assertEqual(["Airborne Ranger"], result['AlternateTitle'])
        self.assertEqual(["1989"], result['ReleaseYear'])
        self.assertEqual(['"MicroProse"'], result['Publisher'])
        self.assertEqual(["Imagitec"], result['Developer'])
        self.assertEqual(["Top-Down"], result['Perspective'])
        self.assertEqual(["Joystick"], result['Controller'])
        self.assertEqual(["Floppy"], result['Media'])
        self.assertEqual(["USA"], result['Region'])
        self.assertEqual(["v1.00"], result['Version'])
        self.assertEqual(["1"], result['Players'])
        self.assertEqual(["1"], result['LaunchCount'])
        self.assertEqual(["1"], result['IsFavorite'])
        self.assertEqual(["3.2"], result['Rating'])
        self.assertEqual(["128"], result['Votes'])
        self.assertTrue(result['Description'][0].startswith(
            "Description with some special characters: ' & <  >"))
        self.assertEqual(len(result['Genre']), 2)
        self.assertIn("Action", result['Genre'])
        self.assertIn("Simulation", result['Genre'])

        os.remove('./testdata/nfo/Amiga/Airborne Ranger.nfo')
Esempio n. 9
0
    def test_createNfoFromDesc_newfile(self):
        xbmcaddon._settings['rcb_nfoFolder'] = './testdata/nfo/'

        self.assertFalse(
            os.path.isfile('./testdata/nfo/Amiga/Airborne Ranger.nfo'),
            'nfo file should not exist')

        writer = NfoWriter()
        writer.createNfoFromDesc(
            'Airborne Ranger',  #gamename
            "Description with some special characters: ' & <  >",  #plot
            'Amiga',  #romCollectionname
            '"MicroProse"',  #publisher
            'Imagitec',  #developer
            '1989',  #year
            '1',  #players
            '3.2',  #rating
            '128',  #votes
            '',  #url
            'USA',  #region
            'Floppy',  #media
            'Top-Down',  #perspective
            'Joystick',  #controller
            'Airborne Ranger',  #originalTitle
            'Airborne Ranger',  #alternateTitle
            'v1.00',  #version
            ['Action', 'Simulation'],  #genreList
            '1',  #isFavorite
            '1',  #launchCount
            './testdata/roms/Amiga/Airborne Ranger.adf',  #romFile
            'Airborne Ranger',  #gamenameFromFile
            {},  #artworkfiles
            {}  #artworkurls
        )

        self.assertTrue(
            os.path.isfile('./testdata/nfo/Amiga/Airborne Ranger.nfo'),
            'Expected nfo file to be written')

        #use nfo scraper to read the file
        scraper = NFO_Scraper()
        scraper.nfo_file = './testdata/nfo/Amiga/Airborne Ranger.nfo'

        result = scraper.retrieve(1, 'Amiga')

        self.assertEqual(["Airborne Ranger"], result['Game'])
        self.assertEqual(["Airborne Ranger"], result['OriginalTitle'])
        self.assertEqual(["Airborne Ranger"], result['AlternateTitle'])
        self.assertEqual(["1989"], result['ReleaseYear'])
        self.assertEqual(['"MicroProse"'], result['Publisher'])
        self.assertEqual(["Imagitec"], result['Developer'])
        self.assertEqual(["Top-Down"], result['Perspective'])
        self.assertEqual(["Joystick"], result['Controller'])
        self.assertEqual(["Floppy"], result['Media'])
        self.assertEqual(["USA"], result['Region'])
        self.assertEqual(["v1.00"], result['Version'])
        self.assertEqual(["1"], result['Players'])
        self.assertEqual(["1"], result['LaunchCount'])
        self.assertEqual(["1"], result['IsFavorite'])
        self.assertEqual(["3.2"], result['Rating'])
        self.assertEqual(["128"], result['Votes'])
        self.assertTrue(result['Description'][0].startswith(
            "Description with some special characters: ' & <  >"))
        self.assertEqual(len(result['Genre']), 2)
        self.assertIn("Action", result['Genre'])
        self.assertIn("Simulation", result['Genre'])

        os.remove('./testdata/nfo/Amiga/Airborne Ranger.nfo')
Esempio n. 10
0
    def test_createNfoFromDesc_newfile_missinginfos(self):
        xbmcaddon._settings['rcb_nfoFolder'] = './testdata/nfo/'

        self.assertFalse(
            os.path.isfile('./testdata/nfo/Amiga/Airborne Ranger.nfo'),
            'nfo file should not exist')

        writer = NfoWriter()
        writer.createNfoFromDesc(
            'Airborne Ranger',  #gamename
            '',  #plot
            'Amiga',  #romCollectionname
            '',  #publisher
            '',  #developer
            '',  #year
            '',  #players
            '',  #rating
            '',  #votes
            '',  #url
            '',  #region
            '',  #media
            '',  #perspective
            '',  #controller
            '',  #originalTitle
            '',  #alternateTitle
            '',  #version
            [],  #genreList
            '',  #isFavorite
            '',  #launchCount
            './testdata/roms/Amiga/Airborne Ranger.adf',  #romFile
            'Airborne Ranger',  #gamenameFromFile
            {},  #artworkfiles
            {}  #artworkurls
        )

        self.assertTrue(
            os.path.isfile('./testdata/nfo/Amiga/Airborne Ranger.nfo'),
            'Expected nfo file to be written')

        #use nfo scraper to read the file
        scraper = NFO_Scraper()
        scraper.nfo_file = './testdata/nfo/Amiga/Airborne Ranger.nfo'

        result = scraper.retrieve(1, 'Amiga')

        self.assertEqual(["Airborne Ranger"], result['Game'])
        self.assertEqual([None], result['OriginalTitle'])
        self.assertEqual([None], result['AlternateTitle'])
        self.assertEqual([None], result['ReleaseYear'])
        self.assertEqual([None], result['Publisher'])
        self.assertEqual([None], result['Developer'])
        self.assertEqual([None], result['Perspective'])
        self.assertEqual([None], result['Controller'])
        self.assertEqual([None], result['Media'])
        self.assertEqual([None], result['Region'])
        self.assertEqual([None], result['Version'])
        self.assertEqual([None], result['Players'])
        self.assertEqual([None], result['LaunchCount'])
        self.assertEqual([None], result['IsFavorite'])
        self.assertEqual([None], result['Rating'])
        self.assertEqual([None], result['Votes'])
        self.assertEqual([None], result['Description'])
        self.assertEqual(len(result['Genre']), 0)

        os.remove('./testdata/nfo/Amiga/Airborne Ranger.nfo')