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, )
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, )
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, )
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, )
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, )
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, )
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, )
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, )
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, )