mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-10-31 02:03:35 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from pathlib import Path
 | |
| 
 | |
| from mealie.core import security
 | |
| from mealie.routes.deps import validate_file_token
 | |
| from mealie.core.config import settings
 | |
| from mealie.db.db_setup import create_session
 | |
| 
 | |
| 
 | |
| def test_create_file_token():
 | |
|     file_path = Path(__file__).parent
 | |
|     file_token = security.create_file_token(file_path)
 | |
| 
 | |
|     assert file_path == validate_file_token(file_token)
 | |
| 
 | |
| 
 | |
| def test_ldap_authentication_mocked(monkeypatch):
 | |
|     import ldap
 | |
| 
 | |
|     user = "testinguser"
 | |
|     password = "testingpass"
 | |
|     bind_template = "cn={},dc=example,dc=com"
 | |
|     admin_filter = "(memberOf=cn=admins,dc=example,dc=com)"
 | |
|     monkeypatch.setattr(settings, "LDAP_AUTH_ENABLED", True)
 | |
|     monkeypatch.setattr(settings, "LDAP_SERVER_URL", "")  # Not needed due to mocking
 | |
|     monkeypatch.setattr(settings, "LDAP_BIND_TEMPLATE", bind_template)
 | |
|     monkeypatch.setattr(settings, "LDAP_ADMIN_FILTER", admin_filter)
 | |
| 
 | |
|     class LdapConnMock:
 | |
|         def simple_bind_s(self, dn, bind_pw):
 | |
|             assert dn == bind_template.format(user)
 | |
|             return bind_pw == password
 | |
| 
 | |
|         def search_s(self, dn, scope, filter, attrlist):
 | |
|             assert attrlist == []
 | |
|             assert filter == admin_filter
 | |
|             assert dn == bind_template.format(user)
 | |
|             assert scope == ldap.SCOPE_BASE
 | |
|             return [()]
 | |
| 
 | |
|     def ldap_initialize_mock(url):
 | |
|         assert url == ""
 | |
|         return LdapConnMock()
 | |
| 
 | |
|     monkeypatch.setattr(ldap, "initialize", ldap_initialize_mock)
 | |
|     result = security.authenticate_user(create_session(), user, password)
 | |
|     assert result is not False
 | |
|     assert result.username == user
 |