| 
									
										
										
										
											2021-02-15 15:04:21 -08:00
										 |  |  | from datahub.configuration.common import AllowDenyPattern | 
					
						
							| 
									
										
										
										
											2021-02-15 17:53:29 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-14 13:40:24 -07:00
										 |  |  | def test_allow_all() -> None: | 
					
						
							| 
									
										
										
										
											2021-02-15 17:53:29 -08:00
										 |  |  |     pattern = AllowDenyPattern.allow_all() | 
					
						
							| 
									
										
										
										
											2021-02-11 21:59:54 -08:00
										 |  |  |     assert pattern.allowed("foo.table") | 
					
						
							| 
									
										
										
										
											2021-02-15 17:53:29 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-11 16:00:29 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-14 13:40:24 -07:00
										 |  |  | def test_deny_all() -> None: | 
					
						
							| 
									
										
										
										
											2021-02-15 17:53:29 -08:00
										 |  |  |     pattern = AllowDenyPattern(allow=[], deny=[".*"]) | 
					
						
							| 
									
										
										
										
											2021-02-11 21:59:54 -08:00
										 |  |  |     assert not pattern.allowed("foo.table") | 
					
						
							| 
									
										
										
										
											2021-02-15 17:53:29 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-11 16:00:29 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-14 13:40:24 -07:00
										 |  |  | def test_single_table() -> None: | 
					
						
							| 
									
										
										
										
											2021-02-15 17:53:29 -08:00
										 |  |  |     pattern = AllowDenyPattern(allow=["foo.mytable"]) | 
					
						
							| 
									
										
										
										
											2021-02-11 21:59:54 -08:00
										 |  |  |     assert pattern.allowed("foo.mytable") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-14 13:40:24 -07:00
										 |  |  | def test_default_deny() -> None: | 
					
						
							| 
									
										
										
										
											2021-02-11 21:59:54 -08:00
										 |  |  |     pattern = AllowDenyPattern(allow=["foo.mytable"]) | 
					
						
							|  |  |  |     assert not pattern.allowed("foo.bar") | 
					
						
							| 
									
										
										
										
											2021-04-05 17:14:02 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_fully_speced(): | 
					
						
							|  |  |  |     pattern = AllowDenyPattern(allow=["foo.mytable"]) | 
					
						
							|  |  |  |     assert pattern.is_fully_specified_allow_list() | 
					
						
							|  |  |  |     pattern = AllowDenyPattern(allow=["foo.*", "foo.table"]) | 
					
						
							|  |  |  |     assert not pattern.is_fully_specified_allow_list() | 
					
						
							|  |  |  |     pattern = AllowDenyPattern(allow=["foo.?", "foo.table"]) | 
					
						
							|  |  |  |     assert not pattern.is_fully_specified_allow_list() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_is_allowed(): | 
					
						
							|  |  |  |     pattern = AllowDenyPattern(allow=["foo.mytable"], deny=["foo.*"]) | 
					
						
							|  |  |  |     assert pattern.get_allowed_list() == [] | 
					
						
							| 
									
										
										
										
											2021-08-10 13:35:57 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def test_case_sensitivity(): | 
					
						
							|  |  |  |     pattern = AllowDenyPattern(allow=["Foo.myTable"]) | 
					
						
							|  |  |  |     assert pattern.allowed("foo.mytable") | 
					
						
							|  |  |  |     assert pattern.allowed("FOO.MYTABLE") | 
					
						
							|  |  |  |     assert pattern.allowed("Foo.MyTable") | 
					
						
							|  |  |  |     pattern = AllowDenyPattern(allow=["Foo.myTable"], ignoreCase=False) | 
					
						
							|  |  |  |     assert not pattern.allowed("foo.mytable") | 
					
						
							|  |  |  |     assert pattern.allowed("Foo.myTable") |