def test_parse_offset_arg(self): """Test if offset parameter is parsed""" parser = BackendCommandArgumentParser(offset=True) # Check default value args = [] parsed_args = parser.parse(*args) self.assertEqual(parsed_args.offset, 0) # Check argument args = ['--offset', '88'] parsed_args = parser.parse(*args) self.assertEqual(parsed_args.offset, 88)
def test_parse_with_aliases(self): """Test if a set of aliases is created after parsing""" aliases = { 'label': 'tag', 'label2': 'tag', 'newdate': 'from_date', 'from_date': 'tag', 'notfound': 'backend_token' } parser = BackendCommandArgumentParser(from_date=True, aliases=aliases) args = ['--tag', 'test', '--from-date', '2015-01-01'] parsed_args = parser.parse(*args) expected_dt = datetime.datetime(2015, 1, 1, 0, 0, tzinfo=dateutil.tz.tzutc()) self.assertIsInstance(parsed_args, argparse.Namespace) self.assertEqual(parsed_args.tag, 'test') self.assertEqual(parsed_args.from_date, expected_dt) # Check aliases self.assertEqual(parsed_args.label, 'test') self.assertEqual(parsed_args.label2, 'test') self.assertEqual(parsed_args.newdate, expected_dt) self.assertNotIn('notfound', parsed_args)
def test_remove_empty_category(self): """Test whether category argument is removed when no value is given""" args = [] parser = BackendCommandArgumentParser(archive=True) parsed_args = parser.parse(*args) with self.assertRaises(AttributeError): _ = parsed_args.category # An empty string is parsed args = ['--category', ''] parser = BackendCommandArgumentParser(archive=True) parsed_args = parser.parse(*args) self.assertEqual(parsed_args.category, '')
def test_fetch_archive_needs_category(self): """Test if fetch-archive needs a category""" args = ['--fetch-archive'] parser = BackendCommandArgumentParser(archive=True) with self.assertRaises(AttributeError): _ = parser.parse(*args)
def test_incompatible_fetch_archive_and_no_archive(self): """Test if fetch-archive and no-archive arguments are incompatible""" args = ['--fetch-archive', '--no-archive'] parser = BackendCommandArgumentParser(archive=True) with self.assertRaises(AttributeError): _ = parser.parse(*args)
def test_parse_default_args(self): """Test if the default configured arguments are parsed""" args = ['--tag', 'test'] parser = BackendCommandArgumentParser() parsed_args = parser.parse(*args) self.assertIsInstance(parsed_args, argparse.Namespace) self.assertEqual(parsed_args.tag, 'test')
def test_parse_auth_args(self): """Test if the authtentication arguments are parsed""" args = ['-u', 'jsmith', '-p', '1234', '-t', 'abcd'] parser = BackendCommandArgumentParser(basic_auth=True, token_auth=True) parsed_args = parser.parse(*args) self.assertIsInstance(parsed_args, argparse.Namespace) self.assertEqual(parsed_args.user, 'jsmith') self.assertEqual(parsed_args.password, '1234') self.assertEqual(parsed_args.api_token, 'abcd')
def test_parse_cache_args(self): """Test if the authtentication arguments are parsed""" args = ['--cache-path', '/tmp/cache', '--clean-cache', '--fetch-cache'] parser = BackendCommandArgumentParser(cache=True) parsed_args = parser.parse(*args) self.assertIsInstance(parsed_args, argparse.Namespace) self.assertEqual(parsed_args.cache_path, '/tmp/cache') self.assertEqual(parsed_args.clean_cache, True) self.assertEqual(parsed_args.fetch_cache, True) self.assertEqual(parsed_args.no_cache, False)
def test_parse_date_args(self): """Test if date parameters are parsed""" parser = BackendCommandArgumentParser(from_date=True, to_date=True) # Check default value args = [] parsed_args = parser.parse(*args) self.assertEqual(parsed_args.from_date, DEFAULT_DATETIME) self.assertEqual(parsed_args.to_date, None) # Check argument 'from-date' args = ['--from-date', '2015-01-01'] parsed_args = parser.parse(*args) expected = datetime.datetime(2015, 1, 1, 0, 0, tzinfo=dateutil.tz.tzutc()) self.assertEqual(parsed_args.from_date, expected) self.assertEqual(parsed_args.to_date, None) # Invalid 'from-date' args = ['--from-date', 'asdf'] with self.assertRaises(InvalidDateError): parsed_args = parser.parse(*args) # Check argument 'to-date' args = ['--to-date', '2016-01-01'] parsed_args = parser.parse(*args) expected_dt = datetime.datetime(2016, 1, 1, 0, 0, tzinfo=dateutil.tz.tzutc()) self.assertEqual(parsed_args.from_date, DEFAULT_DATETIME) self.assertEqual(parsed_args.to_date, expected_dt) # Invalid 'to-date' args = ['--to-date', 'asdf'] with self.assertRaises(InvalidDateError): parsed_args = parser.parse(*args) # Check both arguments args = ['--from-date', '2015-01-01', '--to-date', '2016-01-01'] parsed_args = parser.parse(*args) self.assertEqual(parsed_args.from_date, expected) self.assertEqual(parsed_args.to_date, expected_dt)
def test_parse_archive_args(self): """Test if achiving arguments are parsed""" args = ['--archive-path', '/tmp/archive', '--fetch-archive', '--archived-since', '2016-01-01', '--category', 'mocked'] parser = BackendCommandArgumentParser(archive=True) parsed_args = parser.parse(*args) expected_dt = datetime.datetime(2016, 1, 1, 0, 0, tzinfo=dateutil.tz.tzutc()) self.assertIsInstance(parsed_args, argparse.Namespace) self.assertEqual(parsed_args.archive_path, '/tmp/archive') self.assertEqual(parsed_args.fetch_archive, True) self.assertEqual(parsed_args.no_archive, False) self.assertEqual(parsed_args.archived_since, expected_dt)