Glue - delete_database() (#4631)
This commit is contained in:
		
							parent
							
								
									5fa932c3cb
								
							
						
					
					
						commit
						71f831dae6
					
				| @ -58,6 +58,11 @@ class GlueBackend(BaseBackend): | ||||
|     def get_databases(self): | ||||
|         return [self.databases[key] for key in self.databases] if self.databases else [] | ||||
| 
 | ||||
|     def delete_database(self, database_name): | ||||
|         if database_name not in self.databases: | ||||
|             raise DatabaseNotFoundException(database_name) | ||||
|         del self.databases[database_name] | ||||
| 
 | ||||
|     def create_table(self, database_name, table_name, table_input): | ||||
|         database = self.get_database(database_name) | ||||
| 
 | ||||
|  | ||||
| @ -35,6 +35,11 @@ class GlueResponse(BaseResponse): | ||||
|             {"DatabaseList": [database.as_dict() for database in database_list]} | ||||
|         ) | ||||
| 
 | ||||
|     def delete_database(self): | ||||
|         name = self.parameters.get("Name") | ||||
|         self.glue_backend.delete_database(name) | ||||
|         return json.dumps({}) | ||||
| 
 | ||||
|     def create_table(self): | ||||
|         database_name = self.parameters.get("DatabaseName") | ||||
|         table_input = self.parameters.get("TableInput") | ||||
|  | ||||
| @ -90,6 +90,33 @@ def test_get_databases_several_items(): | ||||
|     database_list[1]["Name"].should.equal(database_name_2) | ||||
| 
 | ||||
| 
 | ||||
| @mock_glue | ||||
| def test_delete_database(): | ||||
|     client = boto3.client("glue", region_name="us-east-1") | ||||
|     database_name_1, database_name_2 = "firstdatabase", "seconddatabase" | ||||
| 
 | ||||
|     helpers.create_database(client, database_name_1, {"Name": database_name_1}) | ||||
|     helpers.create_database(client, database_name_2, {"Name": database_name_2}) | ||||
| 
 | ||||
|     client.delete_database(Name=database_name_1) | ||||
| 
 | ||||
|     database_list = sorted( | ||||
|         client.get_databases()["DatabaseList"], key=lambda x: x["Name"] | ||||
|     ) | ||||
|     [db["Name"] for db in database_list].should.equal([database_name_2]) | ||||
| 
 | ||||
| 
 | ||||
| @mock_glue | ||||
| def test_delete_unknown_database(): | ||||
|     client = boto3.client("glue", region_name="us-east-1") | ||||
| 
 | ||||
|     with pytest.raises(ClientError) as exc: | ||||
|         client.delete_database(Name="x") | ||||
|     err = exc.value.response["Error"] | ||||
|     err["Code"].should.equal("EntityNotFoundException") | ||||
|     err["Message"].should.equal("Database x not found.") | ||||
| 
 | ||||
| 
 | ||||
| @mock_glue | ||||
| def test_create_table(): | ||||
|     client = boto3.client("glue", region_name="us-east-1") | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user