All tests now pass in version 3
parent
b0318ca7b6
commit
4fa33c0bc2
|
@ -79,7 +79,10 @@ class preferences:
|
||||||
return self.preferences
|
return self.preferences
|
||||||
else:
|
else:
|
||||||
tmpdict = self.find_key(self.preferences, preference)
|
tmpdict = self.find_key(self.preferences, preference)
|
||||||
return tmpdict[preference]
|
if tmpdict:
|
||||||
|
return tmpdict[preference]
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
def _get(self, subtype='jsonDefault', preference=None):
|
def _get(self, subtype='jsonDefault', preference=None):
|
||||||
url = "/SOGo/so/%s/%s" % (self.login, subtype)
|
url = "/SOGo/so/%s/%s" % (self.login, subtype)
|
||||||
|
@ -126,6 +129,17 @@ class preferences:
|
||||||
self.set_nosave(key, value)
|
self.set_nosave(key, value)
|
||||||
self.save()
|
self.save()
|
||||||
|
|
||||||
|
def set_or_create(self, preference, value, paths=['defaults']):
|
||||||
|
if not self.preferences:
|
||||||
|
self.load_preferences()
|
||||||
|
subdict = self.find_key(self.preferences, preference)
|
||||||
|
#- Pref is not set
|
||||||
|
if not subdict:
|
||||||
|
subdict = self.preferences
|
||||||
|
for path in paths:
|
||||||
|
subdict = subdict.setdefault(path, {})
|
||||||
|
subdict[preference] = value
|
||||||
|
|
||||||
def save(self):
|
def save(self):
|
||||||
url = "/SOGo/so/%s/Preferences/save" % self.login
|
url = "/SOGo/so/%s/Preferences/save" % self.login
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,11 @@ class preferencesTest(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.prefs = preferences.preferences()
|
self.prefs = preferences.preferences()
|
||||||
|
# because if not set in vacation will not be found later
|
||||||
|
# we must make sure they are there at the start
|
||||||
|
self.prefs.set_or_create("autoReplyText", '', ["defaults", "Vacation"])
|
||||||
|
self.prefs.set_or_create("PreventInvitations", 0, ["settings", "Calendar"])
|
||||||
|
self.prefs.set_or_create("PreventInvitationsWhitelist", [], ["settings", "Calendar"])
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
self.prefs.set("autoReplyText", "")
|
self.prefs.set("autoReplyText", "")
|
||||||
|
|
|
@ -18,12 +18,16 @@ class sieveTest(unittest.TestCase):
|
||||||
def _killFilters(self):
|
def _killFilters(self):
|
||||||
self.prefs=preferences.preferences()
|
self.prefs=preferences.preferences()
|
||||||
# kill existing filters
|
# kill existing filters
|
||||||
self.prefs.set("SOGoSieveFilters", [{}])
|
self.prefs.set_or_create("SOGoSieveFilters", [], ["defaults"])
|
||||||
# vacation filters
|
# vacation filters
|
||||||
self.prefs.set("autoReplyText", "")
|
self.prefs.set_or_create("autoReplyText", "", ["defaults", "Vacation"])
|
||||||
self.prefs.set("autoReplyEmailAddresses", "")
|
self.prefs.set_or_create("autoReplyEmailAddresses", [], ["defaults", "Vacation"])
|
||||||
|
self.prefs.set_or_create("daysBetweenResponse", 7, ["defaults", "Vacation"])
|
||||||
|
self.prefs.set_or_create("ignoreLists", 0, ["defaults", "Vacation"])
|
||||||
|
self.prefs.set_or_create("enabled", 0, ["defaults", "Vacation"])
|
||||||
# forwarding filters
|
# forwarding filters
|
||||||
self.prefs.set("forwardAddress", "")
|
self.prefs.set_or_create("forwardAddress", [], ["defaults", "Forward"])
|
||||||
|
self.prefs.set_or_create("keepCopy", 0, ["defaults", "Forward"])
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
ret = ""
|
ret = ""
|
||||||
|
@ -51,7 +55,7 @@ class sieveTest(unittest.TestCase):
|
||||||
|
|
||||||
for (script, isActive) in sieveScriptList:
|
for (script, isActive) in sieveScriptList:
|
||||||
if (script == "sogo"):
|
if (script == "sogo"):
|
||||||
sieveFoundsogo=1
|
sieveFoundsogo=1
|
||||||
self.assertEqual(isActive, True, "sogo sieve script is not active!")
|
self.assertEqual(isActive, True, "sogo sieve script is not active!")
|
||||||
(ret, createdSieveScript) = self.ms.getscript(script)
|
(ret, createdSieveScript) = self.ms.getscript(script)
|
||||||
self.assertEqual(ret, "OK", "Couldn't get sogo sieve script")
|
self.assertEqual(ret, "OK", "Couldn't get sogo sieve script")
|
||||||
|
@ -76,8 +80,8 @@ class sieveTest(unittest.TestCase):
|
||||||
vacation['enabled'] = 1
|
vacation['enabled'] = 1
|
||||||
|
|
||||||
self.prefs.set_nosave("autoReplyText", vacation_msg)
|
self.prefs.set_nosave("autoReplyText", vacation_msg)
|
||||||
self.prefs.set_nosave("daysBetweenResponse", "%d" % daysSelect)
|
self.prefs.set_nosave("daysBetweenResponse", "%d" % preferences.daysBetweenResponseList[daysSelect])
|
||||||
self.prefs.set_nosave("autoReplyEmailAddresses", self.user_email)
|
self.prefs.set_nosave("autoReplyEmailAddresses", [self.user_email])
|
||||||
self.prefs.save()
|
self.prefs.save()
|
||||||
|
|
||||||
createdSieveScript=self._getSogoSieveScript()
|
createdSieveScript=self._getSogoSieveScript()
|
||||||
|
@ -100,8 +104,8 @@ class sieveTest(unittest.TestCase):
|
||||||
vacation['enabled'] = 1
|
vacation['enabled'] = 1
|
||||||
|
|
||||||
self.prefs.set_nosave("autoReplyText", vacation_msg)
|
self.prefs.set_nosave("autoReplyText", vacation_msg)
|
||||||
self.prefs.set_nosave("daysBetweenResponse", "%d" % daysSelect)
|
self.prefs.set_nosave("daysBetweenResponse", "%d" % preferences.daysBetweenResponseList[daysSelect])
|
||||||
self.prefs.set_nosave("autoReplyEmailAddresses", self.user_email)
|
self.prefs.set_nosave("autoReplyEmailAddresses", [self.user_email])
|
||||||
self.prefs.set_nosave("ignoreLists", 1)
|
self.prefs.set_nosave("ignoreLists", 1)
|
||||||
self.prefs.save()
|
self.prefs.save()
|
||||||
|
|
||||||
|
@ -120,7 +124,7 @@ class sieveTest(unittest.TestCase):
|
||||||
forward = self.prefs.get("Forward")
|
forward = self.prefs.get("Forward")
|
||||||
forward['enabled'] = 1
|
forward['enabled'] = 1
|
||||||
|
|
||||||
self.prefs.set("forwardAddress", redirect_mailaddr)
|
self.prefs.set("forwardAddress", [redirect_mailaddr])
|
||||||
|
|
||||||
createdSieveScript = self._getSogoSieveScript()
|
createdSieveScript = self._getSogoSieveScript()
|
||||||
self.assertEqual(sieveScript, createdSieveScript)
|
self.assertEqual(sieveScript, createdSieveScript)
|
||||||
|
@ -136,7 +140,7 @@ class sieveTest(unittest.TestCase):
|
||||||
forward = self.prefs.get("Forward")
|
forward = self.prefs.get("Forward")
|
||||||
forward['enabled'] = 1
|
forward['enabled'] = 1
|
||||||
|
|
||||||
self.prefs.set_nosave("forwardAddress", redirect_mailaddr)
|
self.prefs.set_nosave("forwardAddress", [redirect_mailaddr])
|
||||||
self.prefs.set_nosave("keepCopy", 1)
|
self.prefs.set_nosave("keepCopy", 1)
|
||||||
self.prefs.save()
|
self.prefs.save()
|
||||||
|
|
||||||
|
@ -150,10 +154,8 @@ class sieveTest(unittest.TestCase):
|
||||||
|
|
||||||
sieveScript=sieve_simple_filter % { "subject": subject, "folderName": folderName }
|
sieveScript=sieve_simple_filter % { "subject": subject, "folderName": folderName }
|
||||||
|
|
||||||
filterAdd = { "SOGoSieveFilters": """[{"active": true, "actions": [{"method": "fileinto", "argument": "Sent"}], "rules": [{"operator": "contains", "field": "subject", "value": "%s"}], "match": "any", "name": "%s"}]""" % (subject, folderName)
|
self.prefs.set("SOGoSieveFilters", [{"active": True, "actions": [{"method": "fileinto", "argument": "Sent"}], "rules": [{"operator": "contains", "field": "subject", "value": subject}], "match": "any", "name": folderName}])
|
||||||
}
|
|
||||||
|
|
||||||
self.prefs.set_multiple(filterAdd)
|
|
||||||
createdSieveScript = self._getSogoSieveScript()
|
createdSieveScript = self._getSogoSieveScript()
|
||||||
self.assertEqual(sieveScript, createdSieveScript)
|
self.assertEqual(sieveScript, createdSieveScript)
|
||||||
|
|
||||||
|
|
|
@ -2164,8 +2164,9 @@ static NSArray *reminderValues = nil;
|
||||||
andJSONRepresentation: [NSDictionary dictionaryWithObjectsAndKeys: @"Connection error", @"textStatus", nil]];
|
andJSONRepresentation: [NSDictionary dictionaryWithObjectsAndKeys: @"Connection error", @"textStatus", nil]];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
results = [self responseWithStatus: 503
|
else
|
||||||
andJSONRepresentation: [NSDictionary dictionaryWithObjectsAndKeys: @"Service temporarily unavailable", @"textStatus", nil]];
|
results = [self responseWithStatus: 503
|
||||||
|
andJSONRepresentation: [NSDictionary dictionaryWithObjectsAndKeys: @"Service temporarily unavailable", @"textStatus", nil]];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue