def setUp(self): flags.STRICT_MODE = False self.target_dict = { 'type': 'postgres', 'dbname': 'postgres', 'user': '******', 'host': 'thishostshouldnotexist', 'pass': '******', 'port': 5432, 'schema': 'public' } profile_cfg = { 'outputs': { 'test': self.target_dict, }, 'target': 'test' } project_cfg = { 'name': 'X', 'version': '0.1', 'profile': 'test', 'project-root': '/tmp/dbt/does-not-exist', 'quoting': { 'identifier': False, 'schema': True, }, } self.config = config_from_parts_or_dicts(project_cfg, profile_cfg) self.handle = mock.MagicMock(spec=psycopg2_extensions.connection) self.cursor = self.handle.cursor.return_value self.mock_execute = self.cursor.execute self.patcher = mock.patch('dbt.adapters.postgres.connections.psycopg2') self.psycopg2 = self.patcher.start() self.psycopg2.connect.return_value = self.handle self.adapter = PostgresAdapter(self.config) self.adapter.connections.query_header = MacroQueryStringSetter( self.config, mock.MagicMock(macros={})) self.qh_patch = mock.patch.object( self.adapter.connections.query_header, 'add') self.mock_query_header_add = self.qh_patch.start() self.mock_query_header_add.side_effect = lambda q: '/* dbt */\n{}'.format( q) self.adapter.acquire_connection() inject_adapter(self.adapter) self.load_patch = mock.patch('dbt.parser.manifest.make_parse_result') self.mock_parse_result = self.load_patch.start() self.mock_parse_result.return_value = ParseResult.rpc()
def setUp(self): flags.STRICT_MODE = False profile_cfg = { 'outputs': { 'test': { 'type': 'postgres', 'dbname': 'postgres', 'user': '******', 'host': 'thishostshouldnotexist', 'pass': '******', 'port': 5432, 'schema': 'public' } }, 'target': 'test' } project_cfg = { 'name': 'X', 'version': '0.1', 'profile': 'test', 'project-root': '/tmp/dbt/does-not-exist', 'quoting': { 'identifier': False, 'schema': True, } } self.config = config_from_parts_or_dicts(project_cfg, profile_cfg) self.handle = mock.MagicMock(spec=psycopg2_extensions.connection) self.cursor = self.handle.cursor.return_value self.mock_execute = self.cursor.execute self.patcher = mock.patch('dbt.adapters.postgres.connections.psycopg2') self.psycopg2 = self.patcher.start() # there must be a better way to do this... self.psycopg2.DatabaseError = DatabaseError self.psycopg2.Error = Error self.psycopg2.connect.return_value = self.handle self.adapter = PostgresAdapter(self.config) self.adapter.acquire_connection() inject_adapter(self.adapter)
def test_dbname_verification_is_case_insensitive(self): # Override adapter settings from setUp() self.target_dict['dbname'] = 'Postgres' profile_cfg = { 'outputs': { 'test': self.target_dict, }, 'target': 'test' } project_cfg = { 'name': 'X', 'version': '0.1', 'profile': 'test', 'project-root': '/tmp/dbt/does-not-exist', 'quoting': { 'identifier': False, 'schema': True, }, } self.config = config_from_parts_or_dicts(project_cfg, profile_cfg) self.adapter.cleanup_connections() self._adapter = PostgresAdapter(self.config) self.adapter.verify_database('postgres')
def adapter(self): if self._adapter is None: self._adapter = PostgresAdapter(self.config) inject_adapter(self._adapter) return self._adapter
def adapter(self): return PostgresAdapter(self.config)
def setUp(self): flags.STRICT_MODE = False self.target_dict = { 'type': 'postgres', 'dbname': 'postgres', 'user': '******', 'host': 'thishostshouldnotexist', 'pass': '******', 'port': 5432, 'schema': 'public' } profile_cfg = { 'outputs': { 'test': self.target_dict, }, 'target': 'test' } project_cfg = { 'name': 'X', 'version': '0.1', 'profile': 'test', 'project-root': '/tmp/dbt/does-not-exist', 'quoting': { 'identifier': False, 'schema': True, }, 'config-version': 2, } self.config = config_from_parts_or_dicts(project_cfg, profile_cfg) self.handle = mock.MagicMock(spec=psycopg2_extensions.connection) self.cursor = self.handle.cursor.return_value self.mock_execute = self.cursor.execute self.patcher = mock.patch('dbt.adapters.postgres.connections.psycopg2') self.psycopg2 = self.patcher.start() # Create the Manifest.state_check patcher @mock.patch( 'dbt.parser.manifest.ManifestLoader.build_manifest_state_check') def _mock_state_check(self): config = self.root_project all_projects = self.all_projects return ManifestStateCheck( vars_hash=FileHash.from_contents('vars'), project_hashes={ name: FileHash.from_contents(name) for name in all_projects }, profile_hash=FileHash.from_contents('profile'), ) self.load_state_check = mock.patch( 'dbt.parser.manifest.ManifestLoader.build_manifest_state_check') self.mock_state_check = self.load_state_check.start() self.mock_state_check.side_effect = _mock_state_check self.psycopg2.connect.return_value = self.handle self.adapter = PostgresAdapter(self.config) self.adapter._macro_manifest_lazy = load_internal_manifest_macros( self.config) self.adapter.connections.query_header = MacroQueryStringSetter( self.config, self.adapter._macro_manifest_lazy) self.qh_patch = mock.patch.object( self.adapter.connections.query_header, 'add') self.mock_query_header_add = self.qh_patch.start() self.mock_query_header_add.side_effect = lambda q: '/* dbt */\n{}'.format( q) self.adapter.acquire_connection() inject_adapter(self.adapter, PostgresPlugin)