summaryrefslogtreecommitdiff
path: root/keystoneclient/fixture
diff options
context:
space:
mode:
authorJamie Lennox <jamielennox@redhat.com>2014-06-18 11:19:36 +1000
committerJamie Lennox <jamielennox@redhat.com>2014-06-19 10:46:27 +1000
commit588aaa3eaac302a1d8f60cce77103e9ac682fae8 (patch)
treed54cba5efe543d2d246da6f8958f73c8ce0c103d /keystoneclient/fixture
parent0aa9df3b76d85706c12320eaa199aa52eaafebb3 (diff)
downloadpython-keystoneclient-588aaa3eaac302a1d8f60cce77103e9ac682fae8.tar.gz
Add issued handlers to auth_ref and fixtures
issued_at is a standard part of V2 and V3 tokens so add it to AccessInfo in a similar way to expiry. Also it should be included when generating tokens so include it in fixtures. Change-Id: I0d62d8ce6472466886751e10e98046b8e398e079
Diffstat (limited to 'keystoneclient/fixture')
-rw-r--r--keystoneclient/fixture/v2.py30
-rw-r--r--keystoneclient/fixture/v3.py31
2 files changed, 55 insertions, 6 deletions
diff --git a/keystoneclient/fixture/v2.py b/keystoneclient/fixture/v2.py
index 8714103..76cd1b8 100644
--- a/keystoneclient/fixture/v2.py
+++ b/keystoneclient/fixture/v2.py
@@ -40,8 +40,8 @@ class Token(dict):
that matter to them and not copy and paste sample.
"""
- def __init__(self, token_id=None,
- expires=None, tenant_id=None, tenant_name=None, user_id=None,
+ def __init__(self, token_id=None, expires=None, issued=None,
+ tenant_id=None, tenant_name=None, user_id=None,
user_name=None):
super(Token, self).__init__()
@@ -49,8 +49,16 @@ class Token(dict):
self.user_id = user_id or uuid.uuid4().hex
self.user_name = user_name or uuid.uuid4().hex
+ if not issued:
+ issued = timeutils.utcnow() - datetime.timedelta(minutes=2)
if not expires:
- expires = timeutils.utcnow() + datetime.timedelta(hours=1)
+ expires = issued + datetime.timedelta(hours=1)
+
+ try:
+ self.issued = issued
+ except (TypeError, AttributeError):
+ # issued should be able to be passed as a string so ignore
+ self.issued_str = issued
try:
self.expires = expires
@@ -94,6 +102,22 @@ class Token(dict):
self.expires_str = timeutils.isotime(value)
@property
+ def issued_str(self):
+ return self._token['issued_at']
+
+ @issued_str.setter
+ def issued_str(self, value):
+ self._token['issued_at'] = value
+
+ @property
+ def issued(self):
+ return timeutils.parse_isotime(self.issued_str)
+
+ @issued.setter
+ def issued(self, value):
+ self.issued_str = timeutils.isotime(value)
+
+ @property
def _user(self):
return self.root.setdefault('user', {})
diff --git a/keystoneclient/fixture/v3.py b/keystoneclient/fixture/v3.py
index 7522f13..a0896f0 100644
--- a/keystoneclient/fixture/v3.py
+++ b/keystoneclient/fixture/v3.py
@@ -54,7 +54,7 @@ class Token(dict):
that matter to them and not copy and paste sample.
"""
- def __init__(self, expires=None, user_id=None, user_name=None,
+ def __init__(self, expires=None, issued=None, user_id=None, user_name=None,
user_domain_id=None, user_domain_name=None, methods=None,
project_id=None, project_name=None, project_domain_id=None,
project_domain_name=None, domain_id=None, domain_name=None,
@@ -71,8 +71,17 @@ class Token(dict):
methods = ['password']
self.methods.extend(methods)
+ if not issued:
+ issued = timeutils.utcnow() - datetime.timedelta(minutes=2)
+
+ try:
+ self.issued = issued
+ except (TypeError, AttributeError):
+ # issued should be able to be passed as a string so ignore
+ self.issued_str = issued
+
if not expires:
- expires = timeutils.utcnow() + datetime.timedelta(hours=1)
+ expires = self.issued + datetime.timedelta(hours=1)
try:
self.expires = expires
@@ -115,7 +124,23 @@ class Token(dict):
@expires.setter
def expires(self, value):
- self.expires_str = timeutils.isotime(value)
+ self.expires_str = timeutils.isotime(value, subsecond=True)
+
+ @property
+ def issued_str(self):
+ return self.root.get('issued_at')
+
+ @issued_str.setter
+ def issued_str(self, value):
+ self.root['issued_at'] = value
+
+ @property
+ def issued(self):
+ return timeutils.parse_isotime(self.issued_str)
+
+ @issued.setter
+ def issued(self, value):
+ self.issued_str = timeutils.isotime(value, subsecond=True)
@property
def _user(self):