def test_args_session(self): args = Args(session='interactions') config = Configuration() config.parse_args(args) self.assertEqual('interactions', config.session)
def test_no_session_arg_means_default_session(self): args = Args() config = Configuration() config.parse_args(args) self.assertEqual(DEFAULT_SESSION, config.session)
def main(): """ Launch ``turses``. """ set_title(__name__) set_encoding('utf8') args = parse_arguments() # check if stdout has to be restored after program exit if any([args.debug, args.offline, getattr(args, 'help', False), getattr(args, 'version', False)]): # we are going to print information to stdout save_and_restore_stdout = False else: save_and_restore_stdout = True if save_and_restore_stdout: save_stdout() # load configuration configuration = Configuration(args) configuration.load() # start logger logging.basicConfig(filename=LOG_FILE, level=configuration.logging_level) # create view curses_interface = CursesInterface(configuration) # select API backend if args.offline: api_backend = MockApi else: api_backend = TweepyApi # create controller turses = Turses(configuration=configuration, ui=curses_interface, api_backend=api_backend) try: turses.start() except KeyboardInterrupt: pass except: # open the debugger if args.debug or args.offline: import pdb pdb.post_mortem() finally: if save_and_restore_stdout: restore_stdout() restore_title() exit(0)
def test_args_config(self): config_path = '/path/to/custom/config/file' args = Args(config=config_path) config = Configuration() config.parse_args(args) self.assertEqual(config_path, config.config_file)
def test_args_generate_config(self): config_path = '~/.turses/custom_config' args = Args(generate_config=config_path) config = Configuration() config.generate_config_file = Mock() config.parse_args(args) config.generate_config_file.assert_called_once()
def test_args_account(self): account = 'bob' args = Args(account=account) token_path = join(CONFIG_PATH, "%s.token" % account) config = Configuration() config.parse_args(args) self.assertEqual(token_path, config.token_file)
def main(): """ Launch ``turses``. """ set_title(__name__) set_encoding('utf8') args = parse_arguments() # stdout if any([args.debug, args.offline, getattr(args, 'help', False), getattr(args, 'version', False)]): # we are going to print information to stdout save_and_restore_stdout = False else: save_and_restore_stdout = True if save_and_restore_stdout: save_stdout() # configuration configuration = Configuration(args) configuration.load() # view curses_interface = CursesInterface(configuration) # API if args.offline: api_backend = MockApi else: api_backend = TweepyApi # controller turses = Turses(configuration=configuration, ui=curses_interface, api_backend=api_backend) try: turses.start() except KeyboardInterrupt: pass except: if args.debug or args.offline: import pdb pdb.post_mortem() finally: if save_and_restore_stdout: restore_stdout() restore_title() exit(0)
def test_defaults(self): """Test that defaults get loaded correctly.""" config = Configuration() # files self.assertEqual(config.config_file, DEFAULT_CONFIG_FILE) self.assertEqual(config.token_file, DEFAULT_TOKEN_FILE) # config options self.assertEqual(config.default_timelines, DEFAULT_TIMELINES) self.assertEqual(config.update_frequency, UPDATE_FREQUENCY) self.assertEqual(config.key_bindings, KEY_BINDINGS) self.assertEqual(config.palette, PALETTE) self.assertEqual(config.styles, STYLES) self.assertEqual(config.logging_level, LOGGING_LEVEL) # debug mode self.assertEqual(config.debug, False)
def test_set_color(self): """Test `Configuration._set_color`.""" config = Configuration() palette = [['first', 'cyan', 'black', 'default', ''], ['second', 'green', 'black']] modified_color = ['first', 'black', 'cyan', 'default', ''] palette[0] = modified_color label, fg, bg = modified_color[:3] config.palette = list(palette) config._set_color(label, fg, bg) self.assertEqual(palette, config.palette) config._set_color('idontexist', fg, bg) self.assertEqual(palette, config.palette)
def test_defaults(self): """Test that defaults get loaded correctly.""" config = Configuration() # files self.assertEqual(config.config_file, DEFAULT_CONFIG_FILE) self.assertEqual(config.token_file, DEFAULT_TOKEN_FILE) # config options self.assertEqual(config.twitter['update_frequency'], TWITTER['update_frequency']) self.assertEqual(config.twitter['use_https'], TWITTER['use_https']) self.assertEqual(config.key_bindings, KEY_BINDINGS) self.assertEqual(config.palette, PALETTE) self.assertEqual(config.styles, STYLES) self.assertEqual(config.logging_level, LOGGING_LEVEL) # debug mode self.assertEqual(config.debug, False)
def test_set_key_binding(self): """Test `Configuration._set_key_binding`.""" config = Configuration() key_bindings = { 'quit': ('q', 'Quit the program'), 'help': ('h', 'Show help') } config.key_bindings = key_bindings.copy() # swap the key bindings config._set_key_binding('quit', 'h') config._set_key_binding('help', 'q') swapped_key_bindings = { 'quit': ('h', 'Quit the program'), 'help': ('q', 'Show help') } self.assertEqual(swapped_key_bindings, config.key_bindings) config._set_key_binding('idontexist', '~') self.assertEqual(swapped_key_bindings, config.key_bindings)
def test_set_color(self): """Test `Configuration._set_color`.""" config = Configuration() palette = [ ['first', 'cyan', 'black', 'default', ''], ['second', 'green', 'black'] ] modified_color = ['first', 'black', 'cyan', 'default', ''] palette[0] = modified_color label, fg, bg = modified_color[:3] config.palette = list(palette) config._set_color(label, fg, bg) self.assertEqual(palette, config.palette) config._set_color('idontexist', fg, bg) self.assertEqual(palette, config.palette)
def test_defaults(self): """Test that defaults get loaded correctly.""" config = Configuration() self.assertEqual(config.config_file, DEFAULT_CONFIG_FILE) self.assertEqual(config.token_file, DEFAULT_TOKEN_FILE)