def _test(self, args, expect):
     """Test the command line args and compare the prefix of the output."""
     with self.assertRaises(SystemExit):
         with mock_stdout() as stdout:
             cli.parse_args(args)
     text = stdout.getvalue()
     self.assertTrue(text.startswith(expect))
 def _with_contact_table(args, **kwargs):
     args = cli.parse_args(args)
     options = '\n'.join('{}={}'.format(key, kwargs[key]) for key in kwargs)
     conf = config.Config(
         io.StringIO('[addressbooks]\n[[test]]\npath=.\n'
                     '[contact table]\n' + options))
     return cli.merge_args_into_config(args, conf)
Example #3
0
 def test_add_email_multiple_headers_separate_args_takes_last(self):
     args, _config = cli.parse_args(
         ["add-email", "-H", "OtHer", "-H", "myfield"])
     actual = args.fields
     self.assertEqual(["myfield"], actual)
Example #4
0
 def test_add_email_another_field(self):
     args, _config = cli.parse_args(["add-email", "-H", "OtHer"])
     actual = args.fields
     self.assertEqual(["other"], actual)
Example #5
0
 def test_add_email_from_field(self):
     args, _config = cli.parse_args(["add-email", "-H", "from"])
     actual = args.fields
     self.assertEqual(["from"], actual)
Example #6
0
 def test_add_email_defaults_to_from_lowercase(self):
     args, _config = cli.parse_args(["add-email"])
     actual = args.fields
     self.assertEqual(["from"], actual)
Example #7
0
 def test_no_target_specification_results_in_an_any_query(self):
     expected = query.AnyQuery()
     args, _config = cli.parse_args(['merge'])
     actual = args.target_contact
     self.assertEqual(expected, actual)
Example #8
0
 def test_normal_search_terms_create_term_queries(self):
     expected = self.foo
     args, _config = cli.parse_args(['list', 'foo'])
     actual = args.search_terms
     self.assertEqual(expected, actual)
Example #9
0
 def test_uid_option_is_combined_with_search_terms_for_merge_command(self):
     args, _config = cli.parse_args(['merge', '--uid=foo', '--target=bar'])
     self.assertEqual(self.uid, args.source_search_terms)
     self.assertEqual(self.bar, args.target_contact)
Example #10
0
 def test_target_uid_option_creates_uid_queries(self):
     args, _config = cli.parse_args(['merge', '--target-uid=foo', 'bar'])
     self.assertEqual(self.uid, args.target_contact)
     self.assertEqual(self.bar, args.source_search_terms)
Example #11
0
 def test_second_target_search_term_overrides_first(self):
     args, _config = cli.parse_args(
         ['merge', '--target=foo', '--target=bar', 'baz'])
     self.assertEqual(self.bar, args.target_contact)
     self.assertEqual(self.baz, args.source_search_terms)
Example #12
0
 def test_target_search_terms_are_typed(self):
     args, _config = cli.parse_args(['merge', '--target=foo', 'bar'])
     self.assertEqual(self.foo, args.target_contact)
     self.assertEqual(self.bar, args.source_search_terms)
Example #13
0
 def test_no_search_terms_create_an_any_query(self):
     expected = query.AnyQuery()
     args, _config = cli.parse_args(['list'])
     actual = args.search_terms
     self.assertEqual(expected, actual)
Example #14
0
 def test_multible_search_terms_generate_and_queries(self):
     expected = query.AndQuery(self.foo, self.bar)
     args, _config = cli.parse_args(['list', 'foo', 'bar'])
     actual = args.search_terms
     self.assertEqual(expected, actual)
Example #15
0
 def test_uid_options_create_uid_queries(self):
     expected = self.uid
     args, _config = cli.parse_args(['list', '--uid=foo'])
     actual = args.search_terms
     self.assertEqual(expected, actual)
Example #16
0
 def test_target_uid_and_free_target_search_terms_produce_a_conflict(self):
     with self.assertRaises(SystemExit):
         with mock_stream("stderr"):  # just silence stderr
             cli.parse_args(['merge', '--target-uid=foo', '--target=bar'])
 def _merge(args):
     args, _conf = cli.parse_args(args)
     # This config file just loads all defaults from the config.spec.
     conf = config.Config(io.StringIO('[addressbooks]\n[[test]]\npath=.'))
     return cli.merge_args_into_config(args, conf)
Example #18
0
 def test_add_email_multiple_headers_comma_separated(self):
     args, _config = cli.parse_args(
         ["add-email", "-H", "OtHer,myfield,from"])
     actual = args.fields
     self.assertEqual(["other", "myfield", "from"], actual)