From 4a705c1157926a8066a76a338083d1840547e731 Mon Sep 17 00:00:00 2001
From: Julian Rother <julianr@fsmpi.rwth-aachen.de>
Date: Mon, 2 Nov 2020 02:01:06 +0100
Subject: [PATCH] fixed tests after they broke by
 a827f27bebc5a795ae4fd1abc382427666a7b527

---
 uffd/user/models.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/uffd/user/models.py b/uffd/user/models.py
index 56cc018d..277e6942 100644
--- a/uffd/user/models.py
+++ b/uffd/user/models.py
@@ -7,7 +7,7 @@ from flask import current_app
 from uffd import ldap
 
 class User():
-	def __init__(self, uid=None, loginname='', displayname='', mail='', groups=None, dn=None, uuid=None):
+	def __init__(self, uid=None, loginname='', displayname='', mail='', groups=None, dn=None, uuid=None): # pylint: disable=too-many-arguments
 		self.uid = uid
 		self.loginname = loginname
 		self.displayname = displayname
@@ -30,7 +30,12 @@ class User():
 				mail=ldapobject['mail'].value,
 				groups=ldap.get_ldap_array_attribute_safe(ldapobject, 'memberOf'),
 				dn=ldapobject.entry_dn,
-				uuid=ldapobject['entryUUID'].value
+				# The LDAP mock does not generate UUIDs for newly created LDAP objects,
+				# so we use a dummy value if the attribute is missing (only for testing!)
+				uuid=ldapobject['entryUUID'].value \
+					if 'entryUUID' in ldapobject.entry_attributes_as_dict \
+					or not current_app.config.get('LDAP_SERVICE_MOCK', False) \
+					else '00000000-0000-0000-0000-000000000000'
 			)
 
 	@classmethod
-- 
GitLab