diff options
author | Roland Hedberg <roland.hedberg@adm.umu.se> | 2012-05-23 18:56:51 +0200 |
---|---|---|
committer | Roland Hedberg <roland.hedberg@adm.umu.se> | 2012-05-23 18:56:51 +0200 |
commit | 1d7b2964d16b5c4443a3e7037d1bffe281726fc6 (patch) | |
tree | f191828115e6f89419cb8c2b34652546bab37889 /tests/test_32_cache.py | |
download | pysaml2-1d7b2964d16b5c4443a3e7037d1bffe281726fc6.tar.gz |
Initial add0.4.2
Diffstat (limited to 'tests/test_32_cache.py')
-rw-r--r-- | tests/test_32_cache.py | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/tests/test_32_cache.py b/tests/test_32_cache.py new file mode 100644 index 00000000..9fc4c410 --- /dev/null +++ b/tests/test_32_cache.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python + +import time +import py +from saml2.cache import Cache +from saml2.time_util import in_a_while, str_to_time + +SESSION_INFO_PATTERN = {"ava":{}, "came from":"", "not_on_or_after":0, + "issuer":"", "session_id":-1} + + +def _eq(l1,l2): + return set(l1) == set(l2) + + +class TestClass: + def setup_class(self): + self.cache = Cache() + + + def test_set(self): + not_on_or_after = str_to_time(in_a_while(days=1)) + session_info = SESSION_INFO_PATTERN.copy() + session_info["ava"] = {"givenName":["Derek"]} + self.cache.set("1234", "abcd", session_info, + not_on_or_after) + + (ava, inactive) = self.cache.get_identity("1234") + assert inactive == [] + assert ava.keys() == ["givenName"] + assert ava["givenName"] == ["Derek"] + + def test_add_ava_info(self): + not_on_or_after = str_to_time(in_a_while(days=1)) + session_info = SESSION_INFO_PATTERN.copy() + session_info["ava"] = {"surName":["Jeter"]} + self.cache.set("1234", "bcde", session_info, + not_on_or_after) + + (ava, inactive) = self.cache.get_identity("1234") + assert inactive == [] + assert _eq(ava.keys(), ["givenName","surName"]) + assert ava["givenName"] == ["Derek"] + assert ava["surName"] == ["Jeter"] + + def test_from_one_target_source(self): + session_info = self.cache.get("1234","bcde") + ava = session_info["ava"] + assert _eq(ava.keys(), ["surName"]) + assert ava["surName"] == ["Jeter"] + session_info = self.cache.get("1234","abcd") + ava = session_info["ava"] + assert _eq(ava.keys(), ["givenName"]) + assert ava["givenName"] == ["Derek"] + + def test_entities(self): + assert _eq(self.cache.entities("1234"), ["abcd", "bcde"]) + py.test.raises(Exception, "self.cache.entities('6666')") + + def test_remove_info(self): + self.cache.reset("1234", "bcde") + assert self.cache.active("1234", "bcde") == False + assert self.cache.active("1234", "abcd") + + (ava, inactive) = self.cache.get_identity("1234") + assert inactive == ['bcde'] + assert _eq(ava.keys(), ["givenName"]) + assert ava["givenName"] == ["Derek"] + + def test_active(self): + assert self.cache.active("1234", "bcde") == False + assert self.cache.active("1234", "abcd") + + def test_subjects(self): + assert self.cache.subjects() == ["1234"] + + def test_second_subject(self): + not_on_or_after = str_to_time(in_a_while(days=1)) + session_info = SESSION_INFO_PATTERN.copy() + session_info["ava"] = {"givenName":["Ichiro"], + "surName":["Suzuki"]} + self.cache.set("9876", "abcd", session_info, + not_on_or_after) + + (ava, inactive) = self.cache.get_identity("9876") + assert inactive == [] + assert _eq(ava.keys(), ["givenName","surName"]) + assert ava["givenName"] == ["Ichiro"] + assert ava["surName"] == ["Suzuki"] + assert _eq(self.cache.subjects(), ["1234","9876"]) + + def test_receivers(self): + assert _eq(self.cache.receivers("9876"), ["abcd"]) + + not_on_or_after = str_to_time(in_a_while(days=1)) + session_info = SESSION_INFO_PATTERN.copy() + session_info["ava"] = {"givenName":["Ichiro"], + "surName":["Suzuki"]} + self.cache.set("9876", "bcde", session_info, + not_on_or_after) + + assert _eq(self.cache.receivers("9876"), ["abcd", "bcde"]) + assert _eq(self.cache.subjects(), ["1234","9876"]) + + def test_timeout(self): + not_on_or_after = str_to_time(in_a_while(seconds=1)) + session_info = SESSION_INFO_PATTERN.copy() + session_info["ava"] = {"givenName":["Alex"], + "surName":["Rodriguez"]} + self.cache.set("1000", "bcde", session_info, + not_on_or_after) + + time.sleep(2) + (ava, inactive) = self.cache.get_identity("1000") + assert inactive == ["bcde"] + assert ava == {} + +
\ No newline at end of file |