示例#1
0
    def test_game_state_localized(self):
        settings.change('language', 'Spanish')
        game_state_test = game_state.GameState(self.log)
        game_state_test.force_zero_map_time = True

        game_state_test.set_bulk(
            (False, 'ctf_mexico_b4', 'Engineer', '', 'Not queued', True))
        self.assertTrue(game_state_test.update_rpc)
        self.assertEqual(
            str(game_state_test),
            'Engineer on ctf_mexico_b4, gamemode=ctf, hosting=True, queued="Not queued", server='
        )
        self.assertEqual(
            fix_activity_dict(game_state_test.activity()), {
                'details': 'Mapa: ctf_mexico_b4 (alojamiento)',
                'state': 'El tiempo en el mapa: 0:00',
                'timestamps': {
                    'start': 0
                },
                'assets': {
                    'large_image': 'ctf',
                    'large_text':
                    'Capturar la Bandera - TF2 Presencia Rica {tf2rpvnum}',
                    'small_image': 'engineer',
                    'small_text': 'Engineer'
                }
            })
        self.assertTrue(game_state_test.update_rpc)
示例#2
0
    def test_get_match_info(self):
        test_game_state = game_state.GameState(self.log)
        test_addresses = (
            '162.254.192.155:27053',  # valve
            'dal-1.us.uncletopia.com:27025',
            'chi.servers.creators.tf:27015',
            '192.223.26.238:27017',  # lazypurple
            '45.35.1.186:27065')  # blackwonder

        for test_address in test_addresses:
            try:
                server_data = test_game_state.get_match_data(
                    test_address, ['Server name', 'Player count', 'Kills'],
                    allow_network_errors=False)
                self.assertTrue(
                    server_data['player_count'].startswith("Players: "))
                self.assertIn(server_data['player_count'].split('/')[1],
                              ('24', '26', '30', '32'))
                self.assertEqual(server_data['kills'], "Kills: 0")

                if "Valve" in server_data['server_name']:
                    self.assertEqual(server_data['server_name'],
                                     "Valve Matchmaking Server (Virginia)")
            except Exception as error:
                raise AssertionError(f'{test_address}, {repr(error)}')

        settings.change('request_timeout', 0.001)
        self.assertEqual(
            test_game_state.get_match_data(
                test_addresses[-1], ['Server name', 'Player count', 'Kills']),
            server_data)
        self.assertEqual(test_game_state.get_match_data('', ['Player count']),
                         {'player_count': 'Players: ?/?'})
示例#3
0
    def test_custom(self):
        settings.change('wait_time_slow', 1)
        big_number_file = f'test_{random.randint(10000, 99999)}.temp'

        with open('custom.py', 'r+') as custom_file:
            custom_old = custom_file.read()
            custom_file.seek(0)
            custom_file.truncate()
            custom_file.write(
                "class TF2RPCustom:"
                "\n\tdef __init__(self, app): pass"
                "\n\tdef before_loop(self, app): pass"
                "\n\tdef modify_game_state(self, app): pass"
                "\n\tdef modify_gui(self, app): pass"
                "\n\tdef modify_rpc_activity(self, app): pass"
                f"\n\tdef after_loop(self, app): open('{big_number_file}', 'w').close()"
            )
            custom_file.flush()

        app = main.TF2RichPresense(self.log, set_process_priority=False)
        app.loop_body()
        app.gui.master.destroy()
        self.assertTrue(os.path.isfile(big_number_file))
        time.sleep(0.2)

        for file in os.listdir():
            if file.startswith('test_') and file.endswith('.temp'):
                os.remove(file)

        with open('custom.py', 'r+') as custom_file:
            custom_file.truncate()
            custom_file.write(custom_old)
示例#4
0
 def test_black_listing(self):
     self.assertEquals(False, access.is_page_blacklisted('Welcome'))
     settings.change({'page-blacklist': '^Wel.*'})
     self.assertEquals(True, access.is_page_blacklisted('Welcome'))
     settings.change({'page-whitelist': '.*come$'})
     self.assertEquals(False, access.is_page_blacklisted('Welcome'),
                       'White listing does not beat blacklisting.')
示例#5
0
 def test_admin_edits(self):
     settings.change({
         'open-editing': 'no',
         'page-blacklist': '.*',
         'parents-must-exist': 'yes'
     })
     self.assertEquals(access.can_edit_page('foo/bar'), False)
     self.assertEquals(access.can_edit_page('foo/bar', is_admin=True), True)
示例#6
0
    def setUp(self):
        settings.access_registry(
            save=settings.defaults())  # sorry if this changes your settings
        settings.change('request_timeout', 30)

        self.dir = os.getcwd()
        self.log = logger.Log('logs\\tests.log')
        self.log.force_disabled = True
        self.log.to_stderr = False
        self.log.sentry_enabled = False
        self.log.info(f"Starting test: {self.id()}")

        gc.enable()  # because main may have disabled it
示例#7
0
    def test_access_to_special_pages(self):
        user = users.User('*****@*****.**')

        settings.change({
            'open-reading': None,
            'readers': None,
            'editors': None
        })
        self.assertEquals(access.can_see_most_pages(user, False), True)

        settings.change({
            'open-reading': 'no',
            'readers': None,
            'editors': None
        })
        self.assertEquals(access.can_see_most_pages(user, False), False)

        settings.change({
            'open-reading': 'no',
            'readers': user.email(),
            'editors': None
        })
        self.assertEquals(access.can_see_most_pages(user, False), True)

        settings.change({
            'open-reading': 'no',
            'readers': None,
            'editors': user.email()
        })
        self.assertEquals(access.can_see_most_pages(user, False), True)
示例#8
0
    def test_set_gui_from_game_state_localized(self):
        settings.change('language', 'German')
        app = main.TF2RichPresense(self.log, set_process_priority=False)
        app.game_state.force_zero_map_time = True

        app.game_state.set_bulk((False, 'mvm_rottenburg', 'Medic', '',
                                 'Queued for MvM (Boot Camp)', True))
        app.game_state.update_server_data(['Player count'], set())
        app.set_gui_from_game_state()
        self.assertEqual((app.gui.text_state, app.gui.bg_state,
                          app.gui.fg_state, app.gui.class_state),
                         (('Karte: Rottenburg (Hosting)', 'Spieler: ?/?',
                           'Zeit auf der Karte: 0:00', '0:00 verstrichen'),
                          ('bg_modes/mvm', 77,
                           172), 'fg_maps/mvm_rottenburg', 'classes/medic'))
        self.assertEqual(app.gui.bottom_text_queue_state,
                         "Warteschlange für MvM (Boot Camp)")
        app.gui.master.destroy()
示例#9
0
    def test_main_simple(self):
        settings.change('wait_time_slow', 1)
        app = main.TF2RichPresense(self.log)
        self.assertEqual(repr(app), 'main.TF2RichPresense (state=init)')
        self.assertEqual(
            fix_activity_dict(app.game_state.activity()), {
                'details': 'In menus',
                'state': 'Not queued',
                'timestamps': {
                    'start': 0
                },
                'assets': {
                    'large_image': 'main_menu',
                    'large_text': 'In menus - TF2 Rich Presence {tf2rpvnum}',
                    'small_image': 'tf2_logo',
                    'small_text': 'Team Fortress 2'
                }
            })
        app.loop_body()
        app.gui.safe_update()
        self.assertEqual(repr(app), 'main.TF2RichPresense (state=no tf2)')
        self.assertEqual(
            fix_activity_dict(app.game_state.activity()), {
                'details': 'In menus',
                'state': 'Not queued',
                'timestamps': {
                    'start': 0
                },
                'assets': {
                    'large_image': 'main_menu',
                    'large_text': 'In menus - TF2 Rich Presence {tf2rpvnum}',
                    'small_image': 'tf2_logo',
                    'small_text': 'Team Fortress 2'
                }
            })

        self_process = psutil.Process()
        self.assertEqual(self_process.nice(),
                         psutil.BELOW_NORMAL_PRIORITY_CLASS)
        self.assertEqual(self_process.ionice(), psutil.IOPRIO_LOW)
        self_process.nice(psutil.NORMAL_PRIORITY_CLASS)
        self_process.ionice(psutil.IOPRIO_NORMAL)

        app.send_rpc_activity()
示例#10
0
    def test_logger(self):
        self.log.log_file.close()
        try:
            os.remove(self.log.filename)
        except (FileNotFoundError, PermissionError):
            pass

        self.log.force_disabled = False
        self.log.filename = 'test_resources\\test_self.log'

        try:
            os.remove(self.log.filename)
        except (FileNotFoundError, PermissionError):
            pass

        self.log.log_file = open(self.log.filename, 'a', encoding='UTF8')
        self.log.info("Test1 饏Ӟ򒚦R៣񘺏1ࠞͳⴺۋ")
        self.log.error(str(SystemError("Test2")), reportable=False)
        self.assertEqual(
            repr(self.log),
            r'logger.Log at test_resources\test_self.log (enabled=True, level=Debug, stderr=False)'
        )
        settings.change('log_level', 'Error')
        self.log.debug("Gone. Reduced to atoms.")
        settings.change('log_level', 'Off')
        self.assertFalse(self.log.enabled())
        self.log.log_file.close()

        with open(self.log.filename, 'r', encoding='UTF8') as current_log_file:
            current_log_file_read = current_log_file.readlines()
            self.assertEqual(len(current_log_file_read), 2)
            self.assertTrue(current_log_file_read[0].endswith(
                "] INFO: Test1 饏Ӟ򒚦R៣񘺏1ࠞͳⴺۋ\n"))
            self.assertTrue(
                current_log_file_read[1].endswith("] ERROR: Test2\n"))

        with self.assertRaises(IndexError):
            should_be_empty = current_log_file_read[2]

        os.remove(self.log.filename)
示例#11
0
    def test_access_to_special_pages(self):
        user = users.User('*****@*****.**')

        settings.change({'open-reading': None, 'readers': None, 'editors': None})
        self.assertEquals(access.can_see_most_pages(user, False), True)

        settings.change({'open-reading': 'no', 'readers': None, 'editors': None})
        self.assertEquals(access.can_see_most_pages(user, False), False)

        settings.change({'open-reading': 'no', 'readers': user.email(), 'editors': None})
        self.assertEquals(access.can_see_most_pages(user, False), True)

        settings.change({'open-reading': 'no', 'readers': None, 'editors': user.email()})
        self.assertEquals(access.can_see_most_pages(user, False), True)
示例#12
0
def detect_system_language(log: logger.Log):
    db: Dict[str, Union[bool, list, str]] = utils.access_db()

    if not db['has_asked_language']:
        language_codes: dict = {
            read_localization_files()[lang]['code']: lang
            for lang in langs[1:]
        }
        system_locale: str = locale.windows_locale[
            ctypes.windll.kernel32.GetUserDefaultUILanguage()]
        system_language_code: str = system_locale.split('_')[0]
        is_brazilian_port: bool = system_locale == 'pt_BR'

        if system_language_code in language_codes or is_brazilian_port:
            system_language: str = language_codes[system_language_code]
            can_localize: bool = True
        else:
            if system_language_code != 'en':
                log.error(f"System locale {system_locale} is not localizable")

            can_localize = False

        if can_localize and settings.get('language') != system_language:
            log.info(
                f"System language ({system_locale}, {system_language}) != settings language ({settings.get('language')}), asking to change"
            )
            db['has_asked_language'] = True
            utils.access_db(db)
            system_language_display: str = 'Português Brasileiro' if is_brazilian_port else system_language
            # this is intentionally not localized
            changed_language: str = messagebox.askquestion(
                f"TF2 Rich Presence {launcher.VERSION}",
                f"Change language to your system's default ({system_language_display})?"
            )
            log.debug(f"Changed language: {changed_language}")

            if changed_language == 'yes':
                settings.change('language', system_language)
示例#13
0
    def test_logged_in_page_editing(self):
        alice = users.User('*****@*****.**')

        settings.change({'open-editing': 'no'})
        self.assertFalse(access.can_edit_page("some page", user=None))
        self.assertFalse(access.can_edit_page("some page", user=alice))

        settings.change({'open-editing': 'yes'})
        self.assertTrue(access.can_edit_page("some page", user=None))
        self.assertTrue(access.can_edit_page("some page", user=alice))

        settings.change({'open-editing': 'login'})
        self.assertFalse(access.can_edit_page("some page", user=None))
        self.assertTrue(access.can_edit_page("some page", user=alice))
示例#14
0
    def test_logged_in_page_editing(self):
        alice = users.User('*****@*****.**')

        settings.change({'open-editing': 'no'})
        self.assertFalse(access.can_edit_page("some page", user=None))
        self.assertFalse(access.can_edit_page("some page", user=alice))

        settings.change({'open-editing': 'yes'})
        self.assertTrue(access.can_edit_page("some page", user=None))
        self.assertTrue(access.can_edit_page("some page", user=alice))

        settings.change({'open-editing': 'login'})
        self.assertFalse(access.can_edit_page("some page", user=None))
        self.assertTrue(access.can_edit_page("some page", user=alice))
示例#15
0
 def test_open_editing(self):
     self.assertEquals(access.can_edit_page('foo'), False)
     settings.change({'open-editing': 'yes'})
     self.assertEquals(access.can_edit_page('foo'), True)
     settings.change({'page-blacklist': '^foo'})
     self.assertEquals(access.can_edit_page('foo'), False)
示例#16
0
 def test_black_listing(self):
     self.assertEquals(False, access.is_page_blacklisted('Welcome'))
     settings.change({'page-blacklist': '^Wel.*'})
     self.assertEquals(True, access.is_page_blacklisted('Welcome'))
     settings.change({'page-whitelist': '.*come$'})
     self.assertEquals(False, access.is_page_blacklisted('Welcome'), 'White listing does not beat blacklisting.')
示例#17
0
 def test_white_listing(self):
     self.assertEquals(False, access.is_page_whitelisted('Welcome'))
     settings.change({'page-whitelist': '^Wel.*'})
     self.assertEquals(True, access.is_page_whitelisted('Welcome'))
示例#18
0
    def test_list_changes_in_closed_wiki(self):
        settings.change({"open-reading": "yes", "open-writing": "yes"})
        self.assertTrue(isinstance(model.WikiContent.get_changes(), list))

        settings.change({"open-reading": "no", "open-writing": "no"})
        self.assertTrue(isinstance(model.WikiContent.get_changes(), list))
示例#19
0
    def test_list_changes_in_closed_wiki(self):
        settings.change({"open-reading": "yes", "open-writing": "yes"})
        self.assertTrue(isinstance(model.WikiContent.get_changes(), list))

        settings.change({"open-reading": "no", "open-writing": "no"})
        self.assertTrue(isinstance(model.WikiContent.get_changes(), list))
示例#20
0
 def test_admin_edits(self):
     settings.change({'open-editing': 'no', 'page-blacklist': '.*', 'parents-must-exist': 'yes'})
     self.assertEquals(access.can_edit_page('foo/bar'), False)
     self.assertEquals(access.can_edit_page('foo/bar', is_admin=True), True)
示例#21
0
 def test_edit_orphan_page(self):
     settings.change({'open-editing': 'yes'})
     self.assertEquals(access.can_edit_page('foo/bar'), True)
     settings.change({'parents-must-exist': 'yes'})
     self.assertEquals(access.can_edit_page('foo/bar'), False)
示例#22
0
 def test_editor_access(self):
     user = users.User('*****@*****.**')
     self.assertEquals(access.can_edit_page('foo'), False)
     self.assertEquals(access.can_edit_page('foo', user), False)
     settings.change({'editors': user.email()})
     self.assertEquals(access.can_edit_page('foo', user), True)
示例#23
0
 def test_edit_locked_page(self):
     """Make sure that locked pages aren't editable."""
     model.WikiContent(title='foo', body='locked: yes\n---\n# foo').put()
     settings.change({'open-editing': 'yes', 'open-reading': 'yes'})
     self.assertEquals(access.can_edit_page('foo', is_admin=False), False)
示例#24
0
 def test_edit_orphan_page(self):
     settings.change({'open-editing': 'yes'})
     self.assertEquals(access.can_edit_page('foo/bar'), True)
     settings.change({'parents-must-exist': 'yes'})
     self.assertEquals(access.can_edit_page('foo/bar'), False)
示例#25
0
 def test_editor_access(self):
     user = users.User('*****@*****.**')
     self.assertEquals(access.can_edit_page('foo'), False)
     self.assertEquals(access.can_edit_page('foo', user), False)
     settings.change({'editors': user.email()})
     self.assertEquals(access.can_edit_page('foo', user), True)
示例#26
0
 def test_white_listing(self):
     self.assertEquals(False, access.is_page_whitelisted('Welcome'))
     settings.change({'page-whitelist': '^Wel.*'})
     self.assertEquals(True, access.is_page_whitelisted('Welcome'))
示例#27
0
 def test_edit_locked_page(self):
     """Make sure that locked pages aren't editable."""
     model.WikiContent(title='foo', body='locked: yes\n---\n# foo').put()
     settings.change({'open-editing': 'yes', 'open-reading': 'yes'})
     self.assertEquals(access.can_edit_page('foo', is_admin=False), False)
示例#28
0
 def test_open_editing(self):
     self.assertEquals(access.can_edit_page('foo'), False)
     settings.change({'open-editing': 'yes'})
     self.assertEquals(access.can_edit_page('foo'), True)
     settings.change({'page-blacklist': '^foo'})
     self.assertEquals(access.can_edit_page('foo'), False)
示例#29
0
    def test_page_reading(self):
        user = users.User('*****@*****.**')

        # Unknown user, default access.
        settings.change({'open-reading': None, 'readers': None, 'editors': None})
        self.assertEquals(access.can_read_page('foo', user, False), True)

        # Unknown user, private wiki.
        settings.change({'open-reading': 'no'})
        self.assertEquals(access.can_read_page('foo', user, False), False)

        # A privilaged reader, private wiki.
        settings.change({'open-reading': 'no', 'readers': user.email(), 'editors': None})
        self.assertEquals(access.can_read_page('foo', user, False), True)

        # A privilaged editor, private wiki.
        settings.change({'open-reading': 'no', 'readers': None, 'editors': user.email()})
        self.assertEquals(access.can_read_page('foo', user, False), True)

        page = model.WikiContent(title='foo')

        # An unknown user, a private wiki and a public page.
        settings.change({'open-reading': 'no', 'readers': None, 'editors': None})
        page.body = 'public: yes\n---\n# foo'
        page.put()
        self.assertEquals(access.can_read_page('foo', user, False), True)

        # An unknown user, an open wiki and a private page.
        settings.change({'open-reading': 'yes', 'readers': None, 'editors': None})
        page.body = 'private: yes\n---\n# foo'
        page.put()
        self.assertEquals(access.can_read_page('foo', user, False), False)

        # An open wiki, a private page with explicit access to some regular user.
        settings.change({'open-reading': 'yes', 'readers': None, 'editors': None})
        page.body = 'private: yes\nreaders: %s\n---\n# foo' % user.email()
        page.put()
        self.assertEquals(access.can_read_page('foo', user, False), True)
示例#30
0
    def test_game_state(self):
        game_state_test = game_state.GameState(self.log)
        game_state_test.force_zero_map_time = True
        self.assertTrue(game_state_test.update_rpc)
        self.assertEqual(str(game_state_test), 'in menus, queued="Not queued"')

        game_state_test.set_bulk((True, '', '', '', 'Not queued', False))
        self.assertTrue(game_state_test.update_rpc)
        self.assertEqual(str(game_state_test), 'in menus, queued="Not queued"')
        self.assertEqual(
            fix_activity_dict(game_state_test.activity()), {
                'details': 'In menus',
                'state': 'Not queued',
                'timestamps': {
                    'start': 0
                },
                'assets': {
                    'large_image': 'main_menu',
                    'large_text': 'In menus - TF2 Rich Presence {tf2rpvnum}',
                    'small_image': 'tf2_logo',
                    'small_text': 'Team Fortress 2'
                }
            })
        self.assertFalse(game_state_test.update_rpc)

        game_state_test.set_bulk(
            (False, 'koth_highpass', 'Demoman', '', 'Not queued', True))
        self.assertTrue(game_state_test.update_rpc)
        self.assertEqual(
            str(game_state_test),
            'Demoman on Highpass, gamemode=koth, hosting=True, queued="Not queued", server='
        )
        self.assertEqual(
            fix_activity_dict(game_state_test.activity()), {
                'details': 'Map: Highpass (hosting)',
                'state': 'Time on map: 0:00',
                'timestamps': {
                    'start': 0
                },
                'assets': {
                    'large_image': 'z_koth_highpass',
                    'large_text': 'Highpass - TF2 Rich Presence {tf2rpvnum}',
                    'small_image': 'demoman',
                    'small_text': 'Demoman'
                }
            })
        self.assertTrue(game_state_test.update_rpc)

        settings.change('bottom_line', 'Class')
        game_state_test.set_bulk(
            (False, 'koth_highpass', 'Demoman', '', 'Not queued', True))
        self.assertTrue(game_state_test.update_rpc)
        self.assertEqual(
            str(game_state_test),
            'Demoman on Highpass, gamemode=koth, hosting=True, queued="Not queued", server='
        )
        self.assertEqual(
            fix_activity_dict(game_state_test.activity()), {
                'details': 'Map: Highpass (hosting)',
                'state': 'Class: Demoman',
                'timestamps': {
                    'start': 0
                },
                'assets': {
                    'large_image': 'z_koth_highpass',
                    'large_text': 'Highpass - TF2 Rich Presence {tf2rpvnum}',
                    'small_image': 'demoman',
                    'small_text': 'Demoman'
                }
            })
        self.assertFalse(game_state_test.update_rpc)

        settings.access_registry(save=settings.defaults())
        game_state_test.set_bulk(
            (False, 'pl_snowycoast', 'Pyro', '162.254.192.155:27053',
             'Not queued', False))
        self.assertTrue(game_state_test.update_rpc)
        game_state_test.update_server_data(['Player count'], {'Kataiser'})
        self.assertEqual(
            str(game_state_test),
            'Pyro on Snowycoast, gamemode=payload, hosting=False, queued="Not queued", server=162.254.192.155:27053'
        )
        self.assertEqual(
            fix_activity_dict(game_state_test.activity()), {
                'details': 'Players: 0/0',
                'state': 'Time on map: 0:00',
                'timestamps': {
                    'start': 0
                },
                'assets': {
                    'large_image': 'z_pl_snowycoast',
                    'large_text': 'Snowycoast - TF2 Rich Presence {tf2rpvnum}',
                    'small_image': 'pyro',
                    'small_text': 'Pyro'
                }
            })
        self.assertTrue(game_state_test.update_rpc)

        settings.change('bottom_line', 'Kills')
        settings.change('server_rate_limit', 0)
        game_state_test.update_server_data(['Player count', 'Kills'],
                                           {'Kataiser'})
        self.assertEqual(
            fix_activity_dict(game_state_test.activity()), {
                'details': 'Players: 0/0',
                'state': 'Kills: 0',
                'timestamps': {
                    'start': 0
                },
                'assets': {
                    'large_image': 'z_pl_snowycoast',
                    'large_text': 'Snowycoast - TF2 Rich Presence {tf2rpvnum}',
                    'small_image': 'pyro',
                    'small_text': 'Pyro'
                }
            })
        self.assertFalse(game_state_test.update_rpc)

        settings.access_registry(save=settings.defaults())
        game_state_test.set_bulk((False, 'cp_catwalk_a5c', 'Soldier', '',
                                  'Queued for Casual', True))
        self.assertTrue(game_state_test.update_rpc)
        self.assertEqual(
            str(game_state_test),
            'Soldier on cp_catwalk_a5c, gamemode=control-point, hosting=True, queued="Queued for Casual", server='
        )
        self.assertEqual(
            fix_activity_dict(game_state_test.activity()), {
                'details': 'Map: cp_catwalk_a5c (hosting)',
                'state': 'Queued for Casual',
                'timestamps': {
                    'start': 0
                },
                'assets': {
                    'large_image': 'control-point',
                    'large_text':
                    'Control Point - TF2 Rich Presence {tf2rpvnum}',
                    'small_image': 'soldier',
                    'small_text': 'Soldier'
                }
            })
        self.assertFalse(game_state_test.update_rpc)

        game_state_test.set_bulk(
            (False, 'arena_badlands', 'Engineer', '', 'Not queued', True))
        self.assertTrue(game_state_test.update_rpc)
        self.assertEqual(
            str(game_state_test),
            'Engineer on Badlands (Arena), gamemode=arena, hosting=True, queued="Not queued", server='
        )
        self.assertEqual(
            fix_activity_dict(game_state_test.activity()), {
                'details': 'Map: Badlands (Arena) (hosting)',
                'state': 'Time on map: 0:00',
                'timestamps': {
                    'start': 0
                },
                'assets': {
                    'large_image': 'z_cp_badlands',
                    'large_text':
                    'Badlands (Arena) - TF2 Rich Presence {tf2rpvnum}',
                    'small_image': 'engineer',
                    'small_text': 'Engineer'
                }
            })
        self.assertTrue(game_state_test.update_rpc)
示例#31
0
 def test_settings_changing(self):
     self.assertEquals(settings.get('no-such-value'), None)
     settings.change({'no-such-value': 'yes'})
     self.assertEquals(settings.get('no-such-value'), 'yes')
     settings.change({'editors': 'one, two'})
     self.assertEquals(settings.get('editors'), ['one', 'two'])
示例#32
0
    def test_page_reading(self):
        user = users.User('*****@*****.**')

        # Unknown user, default access.
        settings.change({
            'open-reading': None,
            'readers': None,
            'editors': None
        })
        self.assertEquals(access.can_read_page('foo', user, False), True)

        # Unknown user, private wiki.
        settings.change({'open-reading': 'no'})
        self.assertEquals(access.can_read_page('foo', user, False), False)

        # A privilaged reader, private wiki.
        settings.change({
            'open-reading': 'no',
            'readers': user.email(),
            'editors': None
        })
        self.assertEquals(access.can_read_page('foo', user, False), True)

        # A privilaged editor, private wiki.
        settings.change({
            'open-reading': 'no',
            'readers': None,
            'editors': user.email()
        })
        self.assertEquals(access.can_read_page('foo', user, False), True)

        page = model.WikiContent(title='foo')

        # An unknown user, a private wiki and a public page.
        settings.change({
            'open-reading': 'no',
            'readers': None,
            'editors': None
        })
        page.body = 'public: yes\n---\n# foo'
        page.put()
        self.assertEquals(access.can_read_page('foo', user, False), True)

        # An unknown user, an open wiki and a private page.
        settings.change({
            'open-reading': 'yes',
            'readers': None,
            'editors': None
        })
        page.body = 'private: yes\n---\n# foo'
        page.put()
        self.assertEquals(access.can_read_page('foo', user, False), False)

        # An open wiki, a private page with explicit access to some regular user.
        settings.change({
            'open-reading': 'yes',
            'readers': None,
            'editors': None
        })
        page.body = 'private: yes\nreaders: %s\n---\n# foo' % user.email()
        page.put()
        self.assertEquals(access.can_read_page('foo', user, False), True)
示例#33
0
def saveSettings():
    cup_type = bottle.request.forms.get('selectedCup')
    settings.change('Current Cup', cup_type)
    log.info(cup_type)
示例#34
0
 def test_settings_changing(self):
     self.assertEquals(settings.get('no-such-value'), None)
     settings.change({'no-such-value': 'yes'})
     self.assertEquals(settings.get('no-such-value'), 'yes')
     settings.change({'editors': 'one, two'})
     self.assertEquals(settings.get('editors'), ['one', 'two'])