示例#1
0
 def test_get_database_settings_logs_deprecated(self):
     mock_print = self.patch(snappy, "print_msg")
     options = self.parser.parse_args([
         "region+rack",
         "--database-host",
         "localhost",
         "--database-name",
         "dbname",
         "--database-user",
         "maas",
         "--database-pass",
         "secret",
     ])
     snappy.get_database_settings(options)
     mock_print.assert_called_once_with(
         "\nWARNING: Passing individual database configs is deprecated "
         "and will be removed in the 2.9 release.\n"
         "Please use --database-uri instead.\n",
         stderr=True,
     )
示例#2
0
 def test_get_database_settings_maas_test_db_prompt_no_default(self):
     options = self.parser.parse_args(["region+rack"])
     self.mock_read_input.side_effect = ["", "postgres:///?user=foo"]
     settings = snappy.get_database_settings(options)
     self.assertEqual(
         {
             "database_host": "localhost",
             "database_name": "foo",
             "database_user": "******",
             "database_pass": None,
         },
         settings,
     )
示例#3
0
 def test_get_database_settings_minimal_postgres(self):
     options = self.parser.parse_args(
         ["region+rack", "--database-uri", "postgres:///?user=myuser"])
     settings = snappy.get_database_settings(options)
     self.assertEqual(
         {
             "database_host": "localhost",
             "database_name": "myuser",
             "database_user": "******",
             "database_pass": None,
         },
         settings,
     )
示例#4
0
 def test_get_database_settings_maas_test_db(self):
     options = self.parser.parse_args(
         ["region+rack", "--database-uri", "maas-test-db:///"])
     settings = snappy.get_database_settings(options)
     self.assertEqual(
         {
             "database_host": f"{self.snap_common}/test-db-socket",
             "database_name": "maasdb",
             "database_user": "******",
             "database_pass": None,
         },
         settings,
     )
示例#5
0
 def test_get_database_settings_maas_test_db_prompt_default(self):
     options = self.parser.parse_args(["region+rack"])
     os.mkdir(os.path.join(self.snap_common, "test-db-socket"))
     self.mock_read_input.side_effect = [""]
     settings = snappy.get_database_settings(options)
     self.assertEqual(
         {
             "database_host": f"{self.snap_common}/test-db-socket",
             "database_name": "maasdb",
             "database_user": "******",
             "database_pass": None,
         },
         settings,
     )
示例#6
0
 def test_get_database_settings_prompt_dsn(self):
     self.mock_read_input.side_effect = [
         "postgres://*****:*****@dbhost/dbname"
     ]
     options = self.parser.parse_args(["region+rack"])
     settings = snappy.get_database_settings(options)
     self.assertEqual(
         {
             "database_host": "dbhost",
             "database_name": "dbname",
             "database_user": "******",
             "database_pass": "******",
         },
         settings,
     )
示例#7
0
 def test_deprecated_get_database_settings_prompt_all_but_pass(self):
     self.patch(snappy, "print_msg")
     self.mock_read_input.side_effect = ["dbhost", "dbname", "dbuser"]
     options = self.parser.parse_args(
         ["region+rack", "--database-pass", "mypwd"])
     settings = snappy.get_database_settings(options)
     self.assertEqual(
         {
             "database_host": "dbhost",
             "database_name": "dbname",
             "database_user": "******",
             "database_pass": "******",
         },
         settings,
     )
示例#8
0
 def test_get_database_settings_no_prompt_dsn(self):
     options = self.parser.parse_args([
         "region+rack",
         "--database-uri",
         "postgres://*****:*****@dbhost/dbname",
     ])
     settings = snappy.get_database_settings(options)
     self.assertEqual(
         {
             "database_host": "dbhost",
             "database_name": "dbname",
             "database_user": "******",
             "database_pass": "******",
         },
         settings,
     )
示例#9
0
 def test_get_database_settings_full_postgres(self):
     options = self.parser.parse_args([
         "region+rack",
         "--database-uri",
         "postgres://*****:*****@myhost:1234/mydb",
     ])
     settings = snappy.get_database_settings(options)
     self.assertEqual(
         {
             "database_host": "myhost",
             "database_name": "mydb",
             "database_user": "******",
             "database_pass": "******",
             "database_port": 1234,
         },
         settings,
     )