summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorYogeshwar Srikrishnan <yoga80@yahoo.com>2011-05-20 17:02:58 -0500
committerYogeshwar Srikrishnan <yoga80@yahoo.com>2011-05-20 17:02:58 -0500
commit8e2713a6496657bcc9db2ebc5b60f08c4576655c (patch)
treeb6327d2862e0db14c51bb0702c267ee6798c05d9 /test
parent7a2081109118e8f9fe910d9408d075cf6184ab59 (diff)
parent4a74b256f903d947258f74a4341fe203b562122c (diff)
Merge remote branch 'khussein/master'
Diffstat (limited to 'test')
-rw-r--r--test/IdentitySOAPUI.xml218
-rw-r--r--test/unit/test_authentication.py104
-rw-r--r--test/unit/test_common.py278
-rw-r--r--test/unit/test_exthandler.py12
-rw-r--r--test/unit/test_groups.py641
-rw-r--r--test/unit/test_keystone.py6
-rw-r--r--test/unit/test_server.py2
-rw-r--r--test/unit/test_tenant_groups.py144
-rw-r--r--test/unit/test_tenants.py62
-rw-r--r--test/unit/test_token.py32
-rw-r--r--test/unit/test_users.py1594
-rw-r--r--test/unit/test_version.py23
12 files changed, 1713 insertions, 1403 deletions
diff --git a/test/IdentitySOAPUI.xml b/test/IdentitySOAPUI.xml
index 86795a38..d5832df8 100644
--- a/test/IdentitySOAPUI.xml
+++ b/test/IdentitySOAPUI.xml
@@ -28,7 +28,7 @@
<con:entry key="Save After" value="false"/>
<con:entry key="Add Settings" value="false"/>
<con:entry key="Endpoint" value=""/>
-</xml-fragment>]]></con:setting></con:settings><con:interface xsi:type="con:RestService" wadlVersion="http://wadl.dev.java.net/2009/02" name="Keystone" type="rest" basePath="" definitionUrl="file:/Users/jorgew/projects/keystone/keystone/identity.wadl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings/><con:definitionCache type="TEXT" rootPart="file:/Users/jorgew/projects/keystone/keystone/identity.wadl"><con:part><con:url>file:/Users/jorgew/projects/keystone/keystone/identity.wadl</con:url><con:content><![CDATA[<application xsi:schemaLocation="http://docs.openstack.org/identity/api/v2.0 xsd/api.xsd http://docs.openstack.org/common/api/v1.0 xsd/api-common.xsd " xmlns="http://wadl.dev.java.net/2009/02" xmlns:idm="http://docs.openstack.org/identity/api/v2.0" xmlns:capi="http://docs.openstack.org/common/api/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+</xml-fragment>]]></con:setting></con:settings><con:interface xsi:type="con:RestService" wadlVersion="http://wadl.dev.java.net/2009/02" name="Keystone" type="rest" basePath="" definitionUrl="file:/Users/jorgew/projects/keystone/keystone/identity.wadl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings/><con:definitionCache type="TEXT" rootPart="file:/Users/jorgew/projects/keystone/keystone/identity.wadl"><con:part><con:url>file:/Users/jorgew/projects/keystone/keystone/identity.wadl</con:url><con:content><![CDATA[<application xsi:schemaLocation="http://docs.openstack.org/identity/api/v2.0 xsd/api.xsd http://docs.openstack.org/common/api/v1.0 xsd/api-common.xsd " xmlns="http://wadl.dev.java.net/2009/02" xmlns:identity="http://docs.openstack.org/identity/api/v2.0" xmlns:capi="http://docs.openstack.org/common/api/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<grammars>
<include href="xsd/api.xsd"/>
<include href="xsd/api-common.xsd"/>
@@ -73,13 +73,13 @@
<representation mediaType="application/json"/>
</response>
<response status="400">
- <representation mediaType="application/xml" element="idm:badRequest"/>
+ <representation mediaType="application/xml" element="identity:badRequest"/>
</response>
<response status="500">
- <representation mediaType="application/xml" element="idm:idmFault"/>
+ <representation mediaType="application/xml" element="identity:identityFault"/>
</response>
<response status="503">
- <representation mediaType="application/xml" element="idm:serviceUnavailable"/>
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
</response>
<response status="400 500 503">
<representation mediaType="application/json"/>
@@ -91,16 +91,16 @@
<representation mediaType="application/json"/>
</response>
<response status="400">
- <representation mediaType="application/xml" element="idm:badRequest"/>
+ <representation mediaType="application/xml" element="identity:badRequest"/>
</response>
<response status="404">
- <representation mediaType="application/xml" element="idm:itemNotFound"/>
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
</response>
<response status="500">
- <representation mediaType="application/xml" element="idm:idmFault"/>
+ <representation mediaType="application/xml" element="identity:identityFault"/>
</response>
<response status="503">
- <representation mediaType="application/xml" element="idm:serviceUnavailable"/>
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
</response>
<response status="400 404 500 503">
<representation mediaType="application/json"/>
@@ -113,13 +113,13 @@
<representation mediaType="application/json"/>
</response>
<response status="400">
- <representation mediaType="application/xml" element="idm:badRequest"/>
+ <representation mediaType="application/xml" element="identity:badRequest"/>
</response>
<response status="500">
- <representation mediaType="application/xml" element="idm:idmFault"/>
+ <representation mediaType="application/xml" element="identity:identityFault"/>
</response>
<response status="503">
- <representation mediaType="application/xml" element="idm:serviceUnavailable"/>
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
</response>
<response status="400 500 503">
<representation mediaType="application/json"/>
@@ -128,27 +128,27 @@
<!--Token Operations-->
<method name="POST" id="authenticate">
<request>
- <representation mediaType="application/xml" element="idm:passwordCredentials"/>
+ <representation mediaType="application/xml" element="identity:passwordCredentials"/>
<representation mediaType="application/json"/>
</request>
<response status="200 203">
- <representation mediaType="application/xml" element="idm:auth"/>
+ <representation mediaType="application/xml" element="identity:auth"/>
<representation mediaType="application/json"/>
</response>
<response status="401">
- <representation mediaType="application/xml" element="idm:unauthorized"/>
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
</response>
<response status="403">
- <representation mediaType="application/xml" element="idm:userDisabled"/>
+ <representation mediaType="application/xml" element="identity:userDisabled"/>
</response>
<response status="400">
- <representation mediaType="application/xml" element="idm:badRequest"/>
+ <representation mediaType="application/xml" element="identity:badRequest"/>
</response>
<response status="500">
- <representation mediaType="application/xml" element="idm:idmFault"/>
+ <representation mediaType="application/xml" element="identity:identityFault"/>
</response>
<response status="503">
- <representation mediaType="application/xml" element="idm:serviceUnavailable"/>
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
</response>
<response status="401 403 400 500 503">
<representation mediaType="application/json"/>
@@ -159,27 +159,27 @@
<param name="belongsTo" style="query" required="false" type="xsd:string"/>
</request>
<response status="200 203">
- <representation mediaType="application/xml" element="idm:auth"/>
+ <representation mediaType="application/xml" element="identity:auth"/>
<representation mediaType="application/json"/>
</response>
<response status="401">
- <representation mediaType="application/xml" element="idm:unauthorized"/>
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
</response>
<response status="403">
- <representation mediaType="application/xml" element="idm:forbidden"/>
- <representation mediaType="application/xml" element="idm:userDisabled"/>
+ <representation mediaType="application/xml" element="identity:forbidden"/>
+ <representation mediaType="application/xml" element="identity:userDisabled"/>
</response>
<response status="400">
- <representation mediaType="application/xml" element="idm:badRequest"/>
+ <representation mediaType="application/xml" element="identity:badRequest"/>
</response>
<response status="404">
- <representation mediaType="application/xml" element="idm:itemNotFound"/>
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
</response>
<response status="500">
- <representation mediaType="application/xml" element="idm:idmFault"/>
+ <representation mediaType="application/xml" element="identity:identityFault"/>
</response>
<response status="503">
- <representation mediaType="application/xml" element="idm:serviceUnavailable"/>
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
</response>
<response status="400 401 403 404 500 503">
<representation mediaType="application/json"/>
@@ -188,22 +188,22 @@
<method name="DELETE" id="revokeToken">
<response status="204"/>
<response status="401">
- <representation mediaType="application/xml" element="idm:unauthorized"/>
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
</response>
<response status="403">
- <representation mediaType="application/xml" element="idm:forbidden"/>
+ <representation mediaType="application/xml" element="identity:forbidden"/>
</response>
<response status="400">
- <representation mediaType="application/xml" element="idm:badRequest"/>
+ <representation mediaType="application/xml" element="identity:badRequest"/>
</response>
<response status="404">
- <representation mediaType="application/xml" element="idm:itemNotFound"/>
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
</response>
<response status="500">
- <representation mediaType="application/xml" element="idm:idmFault"/>
+ <representation mediaType="application/xml" element="identity:identityFault"/>
</response>
<response status="503">
- <representation mediaType="application/xml" element="idm:serviceUnavailable"/>
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
</response>
<response status="400 401 403 404 500 503">
<representation mediaType="application/json"/>
@@ -216,26 +216,26 @@
<param name="limit" style="query" required="false" type="xsd:int"/>
</request>
<response status="200 203">
- <representation mediaType="application/xml" element="idm:tenants"/>
+ <representation mediaType="application/xml" element="identity:tenants"/>
<representation mediaType="application/json"/>
</response>
<response status="401">
- <representation mediaType="application/xml" element="idm:unauthorized"/>
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
</response>
<response status="403">
- <representation mediaType="application/xml" element="idm:forbidden"/>
+ <representation mediaType="application/xml" element="identity:forbidden"/>
</response>
<response status="400">
- <representation mediaType="application/xml" element="idm:badRequest"/>
+ <representation mediaType="application/xml" element="identity:badRequest"/>
</response>
<response status="404">
- <representation mediaType="application/xml" element="idm:itemNotFound"/>
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
</response>
<response status="500">
- <representation mediaType="application/xml" element="idm:idmFault"/>
+ <representation mediaType="application/xml" element="identity:identityFault"/>
</response>
<response status="503">
- <representation mediaType="application/xml" element="idm:serviceUnavailable"/>
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
</response>
<response status="400 401 403 404 500 503">
<representation mediaType="application/json"/>
@@ -243,30 +243,30 @@
</method>
<method name="POST" id="createTenant">
<request>
- <representation mediaType="application/xml" element="idm:tenant"/>
+ <representation mediaType="application/xml" element="identity:tenant"/>
<representation mediaType="application/json"/>
</request>
<response status="201">
- <representation mediaType="application/xml" element="idm:tenant"/>
+ <representation mediaType="application/xml" element="identity:tenant"/>
<representation mediaType="application/json"/>
</response>
<response status="401">
- <representation mediaType="application/xml" element="idm:unauthorized"/>
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
</response>
<response status="403">
- <representation mediaType="application/xml" element="idm:forbidden"/>
+ <representation mediaType="application/xml" element="identity:forbidden"/>
</response>
<response status="409">
- <representation mediaType="application/xml" element="idm:tenantConflict"/>
+ <representation mediaType="application/xml" element="identity:tenantConflict"/>
</response>
<response status="400">
- <representation mediaType="application/xml" element="idm:badRequest"/>
+ <representation mediaType="application/xml" element="identity:badRequest"/>
</response>
<response status="500">
- <representation mediaType="application/xml" element="idm:idmFault"/>
+ <representation mediaType="application/xml" element="identity:identityFault"/>
</response>
<response status="503">
- <representation mediaType="application/xml" element="idm:serviceUnavailable"/>
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
</response>
<response status="401 403 400 409 500 503">
<representation mediaType="application/json"/>
@@ -274,26 +274,26 @@
</method>
<method name="GET" id="getTenant">
<response status="200 203">
- <representation mediaType="application/xml" element="idm:tenant"/>
+ <representation mediaType="application/xml" element="identity:tenant"/>
<representation mediaType="application/json"/>
</response>
<response status="401">
- <representation mediaType="application/xml" element="idm:unauthorized"/>
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
</response>
<response status="403">
- <representation mediaType="application/xml" element="idm:forbidden"/>
+ <representation mediaType="application/xml" element="identity:forbidden"/>
</response>
<response status="400">
- <representation mediaType="application/xml" element="idm:badRequest"/>
+ <representation mediaType="application/xml" element="identity:badRequest"/>
</response>
<response status="404">
- <representation mediaType="application/xml" element="idm:itemNotFound"/>
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
</response>
<response status="500">
- <representation mediaType="application/xml" element="idm:idmFault"/>
+ <representation mediaType="application/xml" element="identity:identityFault"/>
</response>
<response status="503">
- <representation mediaType="application/xml" element="idm:serviceUnavailable"/>
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
</response>
<response status="400 401 403 404 500 503">
<representation mediaType="application/json"/>
@@ -301,30 +301,30 @@
</method>
<method name="PUT" id="updateTenant">
<request>
- <representation mediaType="application/xml" element="idm:tenant"/>
+ <representation mediaType="application/xml" element="identity:tenant"/>
<representation mediaType="application/json"/>
</request>
<response status="200">
- <representation mediaType="application/xml" element="idm:tenant"/>
+ <representation mediaType="application/xml" element="identity:tenant"/>
<representation mediaType="application/json"/>
</response>
<response status="401">
- <representation mediaType="application/xml" element="idm:unauthorized"/>
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
</response>
<response status="403">
- <representation mediaType="application/xml" element="idm:forbidden"/>
+ <representation mediaType="application/xml" element="identity:forbidden"/>
</response>
<response status="404">
- <representation mediaType="application/xml" element="idm:itemNotFound"/>
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
</response>
<response status="400">
- <representation mediaType="application/xml" element="idm:badRequest"/>
+ <representation mediaType="application/xml" element="identity:badRequest"/>
</response>
<response status="500">
- <representation mediaType="application/xml" element="idm:idmFault"/>
+ <representation mediaType="application/xml" element="identity:identityFault"/>
</response>
<response status="503">
- <representation mediaType="application/xml" element="idm:serviceUnavailable"/>
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
</response>
<response status="401 403 404 400 500 503">
<representation mediaType="application/json"/>
@@ -333,40 +333,40 @@
<method name="DELETE" id="deleteTenant">
<response status="204"/>
<response status="401">
- <representation mediaType="application/xml" element="idm:unauthorized"/>
+ <representation mediaType="application/xml" element="identity:unauthorized"/>
</response>
<response status="403">
- <representation mediaType="application/xml" element="idm:forbidden"/>
+ <representation mediaType="application/xml" element="identity:forbidden"/>
</response>
<response status="400">
- <representation mediaType="application/xml" element="idm:badRequest"/>
+ <representation mediaType="application/xml" element="identity:badRequest"/>
</response>
<response status="404">
- <representation mediaType="application/xml" element="idm:itemNotFound"/>
+ <representation mediaType="application/xml" element="identity:itemNotFound"/>
</response>
<response status="500">
- <representation mediaType="application/xml" element="idm:idmFault"/>
+ <representation mediaType="application/xml" element="identity:identityFault"/>
</response>
<response status="503">
- <representation mediaType="application/xml" element="idm:serviceUnavailable"/>
+ <representation mediaType="application/xml" element="identity:serviceUnavailable"/>
</response>
<response status="400 401 403 404 500 503">
<representation mediaType="application/json"/>
</response>
</method>
-</application>]]></con:content><con:type>http://wadl.dev.java.net/2009/02</con:type></con:part><con:part><con:url>file:/Users/jorgew/projects/keystone/keystone/xsd/api.xsd</con:url><con:content>&lt;schema elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace="http://docs.openstack.org/identity/api/v2.0" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:idm="http://docs.openstack.org/identity/api/v2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+</application>]]></con:content><con:type>http://wadl.dev.java.net/2009/02</con:type></con:part><con:part><con:url>file:/Users/jorgew/projects/keystone/keystone/xsd/api.xsd</con:url><con:content>&lt;schema elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace="http://docs.openstack.org/identity/api/v2.0" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:identity="http://docs.openstack.org/identity/api/v2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
&lt;include schemaLocation="token.xsd"/>
&lt;include schemaLocation="tenant.xsd"/>
&lt;include schemaLocation="fault.xsd"/>
-&lt;/schema></con:content><con:type>http://www.w3.org/2001/XMLSchema</con:type></con:part><con:part><con:url>file:/Users/jorgew/projects/keystone/keystone/xsd/token.xsd</con:url><con:content><![CDATA[<schema elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace="http://docs.openstack.org/identity/api/v2.0" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:idm="http://docs.openstack.org/identity/api/v2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+&lt;/schema></con:content><con:type>http://www.w3.org/2001/XMLSchema</con:type></con:part><con:part><con:url>file:/Users/jorgew/projects/keystone/keystone/xsd/token.xsd</con:url><con:content><![CDATA[<schema elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace="http://docs.openstack.org/identity/api/v2.0" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:identity="http://docs.openstack.org/identity/api/v2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--Elements-->
- <element name="passwordCredentials" type="idm:PasswordCredentials"/>
- <element name="auth" type="idm:AuthData"/>
+ <element name="passwordCredentials" type="identity:PasswordCredentials"/>
+ <element name="auth" type="identity:AuthData"/>
<!--Complex Types-->
<complexType name="Credentials" abstract="true"/>
<complexType name="PasswordCredentials">
<complexContent>
- <extension base="idm:Credentials">
+ <extension base="identity:Credentials">
<sequence>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
@@ -379,8 +379,8 @@
</complexType>
<complexType name="AuthData">
<sequence>
- <element name="token" type="idm:Token"/>
- <element name="user" type="idm:User"/>
+ <element name="token" type="identity:Token"/>
+ <element name="user" type="identity:User"/>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<anyAttribute namespace="##other" processContents="lax"/>
@@ -395,7 +395,7 @@
</complexType>
<complexType name="User">
<sequence>
- <element name="groups" type="idm:Groups"/>
+ <element name="groups" type="identity:Groups"/>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="tenantId" type="xsd:string"/>
@@ -404,7 +404,7 @@
</complexType>
<complexType name="Groups">
<sequence>
- <element name="group" type="idm:Group" maxOccurs="1000"/>
+ <element name="group" type="identity:Group" maxOccurs="1000"/>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<anyAttribute namespace="##other" processContents="lax"/>
@@ -414,16 +414,16 @@
<attribute name="tenantId" type="xsd:string" use="optional"/>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
-</schema>]]></con:content><con:type>http://www.w3.org/2001/XMLSchema</con:type></con:part><con:part><con:url>file:/Users/jorgew/projects/keystone/keystone/xsd/tenant.xsd</con:url><con:content><![CDATA[<schema elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace="http://docs.openstack.org/identity/api/v2.0" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:idm="http://docs.openstack.org/identity/api/v2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" xmlns:atom="http://www.w3.org/2005/Atom">
+</schema>]]></con:content><con:type>http://www.w3.org/2001/XMLSchema</con:type></con:part><con:part><con:url>file:/Users/jorgew/projects/keystone/keystone/xsd/tenant.xsd</con:url><con:content><![CDATA[<schema elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace="http://docs.openstack.org/identity/api/v2.0" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:identity="http://docs.openstack.org/identity/api/v2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" xmlns:atom="http://www.w3.org/2005/Atom">
<!--Import ATOM specific schema definitions-->
<import vc:minVersion="1.1" namespace="http://www.w3.org/2005/Atom" schemaLocation="./atom/atom.xsd"/>
<!--Elements-->
- <element name="tenant" type="idm:Tenant"/>
- <element name="tenants" type="idm:Tenants"/>
+ <element name="tenant" type="identity:Tenant"/>
+ <element name="tenants" type="identity:Tenants"/>
<!--Complex Types-->
<complexType name="Tenants">
<sequence>
- <element name="tenant" type="idm:Tenant" maxOccurs="1000"/>
+ <element name="tenant" type="identity:Tenant" maxOccurs="1000"/>
<element vc:minVersion="1.1" ref="atom:link" minOccurs="0" maxOccurs="unbounded"/>
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
@@ -780,19 +780,19 @@
</div>
</xs:documentation>
</xs:annotation>
-</xs:schema>]]></con:content><con:type>http://www.w3.org/2001/XMLSchema</con:type></con:part><con:part><con:url>file:/Users/jorgew/projects/keystone/keystone/xsd/fault.xsd</con:url><con:content><![CDATA[<schema elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace="http://docs.openstack.org/identity/api/v2.0" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:idm="http://docs.openstack.org/identity/api/v2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+</xs:schema>]]></con:content><con:type>http://www.w3.org/2001/XMLSchema</con:type></con:part><con:part><con:url>file:/Users/jorgew/projects/keystone/keystone/xsd/fault.xsd</con:url><con:content><![CDATA[<schema elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace="http://docs.openstack.org/identity/api/v2.0" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:identity="http://docs.openstack.org/identity/api/v2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--Fault Elements-->
- <element name="idmFault" type="idm:IDMFault"/>
- <element name="serviceUnavailable" type="idm:ServiceUnavailableFault"/>
- <element name="badRequest" type="idm:BadRequestFault"/>
- <element name="unauthorized" type="idm:UnauthorizedFault"/>
- <element name="overLimit" type="idm:OverLimitFault"/>
- <element name="userDisabled" type="idm:UserDisabledFault"/>
- <element name="forbidden" type="idm:ForbiddenFault"/>
- <element name="itemNotFound" type="idm:ItemNotFoundFault"/>
- <element name="tenantConflict" type="idm:TenantConflictFault"/>
+ <element name="identityFault" type="identity:IdentityFault"/>
+ <element name="serviceUnavailable" type="identity:ServiceUnavailableFault"/>
+ <element name="badRequest" type="identity:BadRequestFault"/>
+ <element name="unauthorized" type="identity:UnauthorizedFault"/>
+ <element name="overLimit" type="identity:OverLimitFault"/>
+ <element name="userDisabled" type="identity:UserDisabledFault"/>
+ <element name="forbidden" type="identity:ForbiddenFault"/>
+ <element name="itemNotFound" type="identity:ItemNotFoundFault"/>
+ <element name="tenantConflict" type="identity:TenantConflictFault"/>
<!--Fault Types-->
- <complexType name="IDMFault">
+ <complexType name="IdentityFault">
<sequence>
<element name="message" type="xsd:string">
<annotation>
@@ -825,42 +825,42 @@
</complexType>
<complexType name="ServiceUnavailableFault">
<complexContent>
- <extension base="idm:IDMFault"></extension>
+ <extension base="identity:IdentityFault"></extension>
</complexContent>
</complexType>
<complexType name="BadRequestFault">
<complexContent>
- <extension base="idm:IDMFault"></extension>
+ <extension base="identity:IdentityFault"></extension>
</complexContent>
</complexType>
<complexType name="UnauthorizedFault">
<complexContent>
- <extension base="idm:IDMFault"></extension>
+ <extension base="identity:IdentityFault"></extension>
</complexContent>
</complexType>
<complexType name="UserDisabledFault">
<complexContent>
- <extension base="idm:IDMFault"></extension>
+ <extension base="identity:IdentityFault"></extension>
</complexContent>
</complexType>
<complexType name="ForbiddenFault">
<complexContent>
- <extension base="idm:IDMFault"></extension>
+ <extension base="identity:IdentityFault"></extension>
</complexContent>
</complexType>
<complexType name="ItemNotFoundFault">
<complexContent>
- <extension base="idm:IDMFault"></extension>
+ <extension base="identity:IdentityFault"></extension>
</complexContent>
</complexType>
<complexType name="TenantConflictFault">
<complexContent>
- <extension base="idm:IDMFault"></extension>
+ <extension base="identity:IdentityFault"></extension>
</complexContent>
</complexType>
<complexType name="OverLimitFault">
<complexContent>
- <extension base="idm:IDMFault">
+ <extension base="identity:IdentityFault">
<attribute name="retryAt" type="xsd:dateTime" use="optional">
<annotation>
<xsd:documentation xml:lang="EN" xmlns="http://www.w3.org/1999/xhtml" xmlns:xs="http://www.w3.org/2001/XMLSchema">
@@ -1094,47 +1094,47 @@
</xs:attribute>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
-</xs:schema>]]></con:content><con:type>http://www.w3.org/2001/XMLSchema</con:type></con:part></con:definitionCache><con:endpoints><con:endpoint>http://localhost:8080</con:endpoint></con:endpoints><con:resource name="v1.0" path="v1.0"><con:settings/><con:parameters/><con:resource name="extensions" path="extensions"><con:settings/><con:parameters/><con:resource name="{alias}" path="{alias}"><con:settings/><con:parameters><con:parameter><con:name>alias</con:name><con:value xsi:nil="true"/><con:style>TEMPLATE</con:style><con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type><con:default xsi:nil="true"/></con:parameter></con:parameters><con:method name="GET - getExtension" method="GET"><con:settings/><con:parameters/><con:representation type="RESPONSE" id=""><con:mediaType>application/xml</con:mediaType><con:status>200 203</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/common/api/v1.0">v1:extension</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="RESPONSE" id=""><con:mediaType>application/json</con:mediaType><con:status>200 203</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>404</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:itemNotFound</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:idmFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>400 404 500 503</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:request name="Request 1" mediaType="application/xml" accept="application/xml"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request/><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters><entry key="alias" value="RAX-TEST" xmlns="http://eviware.com/soapui/config"/></con:parameters></con:request></con:method></con:resource><con:method name="GET - getExtensions" method="GET"><con:settings/><con:parameters/><con:representation type="RESPONSE" id=""><con:mediaType>application/xml</con:mediaType><con:status>200 203</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/common/api/v1.0">v1:extensions</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="RESPONSE" id=""><con:mediaType>application/json</con:mediaType><con:status>200 203</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:idmFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>400 500 503</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:request name="Request 1" mediaType="application/xml" accept="application/xml"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request/><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters/></con:request></con:method></con:resource><con:resource name="token" path="token"><con:settings/><con:parameters/><con:resource name="{tokenId}" path="{tokenId}"><con:settings/><con:parameters><con:parameter required="true"><con:name>X-Auth-Token</con:name><con:value xsi:nil="true"/><con:style>HEADER</con:style><con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type><con:default xsi:nil="true"/></con:parameter><con:parameter><con:name>tokenId</con:name><con:value xsi:nil="true"/><con:style>TEMPLATE</con:style><con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type><con:default xsi:nil="true"/></con:parameter></con:parameters><con:method name="GET - validateToken" method="GET"><con:settings/><con:parameters><con:parameter><con:name>belongsTo</con:name><con:value xsi:nil="true"/><con:style>QUERY</con:style><con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type><con:default xsi:nil="true"/></con:parameter></con:parameters><con:representation type="RESPONSE" id=""><con:mediaType>application/xml</con:mediaType><con:status>200 203</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:auth</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="RESPONSE" id=""><con:mediaType>application/json</con:mediaType><con:status>200 203</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>401</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:unauthorized</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>403</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:forbidden</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>403</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:userDisabled</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>404</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:itemNotFound</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:idmFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>400 401 403 404 500 503</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:request name="Request 1" mediaType="application/xml" accept="application/xml"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request/><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters>
+</xs:schema>]]></con:content><con:type>http://www.w3.org/2001/XMLSchema</con:type></con:part></con:definitionCache><con:endpoints><con:endpoint>http://localhost:8080</con:endpoint></con:endpoints><con:resource name="v1.0" path="v1.0"><con:settings/><con:parameters/><con:resource name="extensions" path="extensions"><con:settings/><con:parameters/><con:resource name="{alias}" path="{alias}"><con:settings/><con:parameters><con:parameter><con:name>alias</con:name><con:value xsi:nil="true"/><con:style>TEMPLATE</con:style><con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type><con:default xsi:nil="true"/></con:parameter></con:parameters><con:method name="GET - getExtension" method="GET"><con:settings/><con:parameters/><con:representation type="RESPONSE" id=""><con:mediaType>application/xml</con:mediaType><con:status>200 203</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/common/api/v1.0">v1:extension</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="RESPONSE" id=""><con:mediaType>application/json</con:mediaType><con:status>200 203</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>404</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:itemNotFound</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:identityFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>400 404 500 503</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:request name="Request 1" mediaType="application/xml" accept="application/xml"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request/><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters><entry key="alias" value="RAX-TEST" xmlns="http://eviware.com/soapui/config"/></con:parameters></con:request></con:method></con:resource><con:method name="GET - getExtensions" method="GET"><con:settings/><con:parameters/><con:representation type="RESPONSE" id=""><con:mediaType>application/xml</con:mediaType><con:status>200 203</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/common/api/v1.0">v1:extensions</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="RESPONSE" id=""><con:mediaType>application/json</con:mediaType><con:status>200 203</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:identityFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>400 500 503</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:request name="Request 1" mediaType="application/xml" accept="application/xml"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request/><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters/></con:request></con:method></con:resource><con:resource name="token" path="token"><con:settings/><con:parameters/><con:resource name="{tokenId}" path="{tokenId}"><con:settings/><con:parameters><con:parameter required="true"><con:name>X-Auth-Token</con:name><con:value xsi:nil="true"/><con:style>HEADER</con:style><con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type><con:default xsi:nil="true"/></con:parameter><con:parameter><con:name>tokenId</con:name><con:value xsi:nil="true"/><con:style>TEMPLATE</con:style><con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type><con:default xsi:nil="true"/></con:parameter></con:parameters><con:method name="GET - validateToken" method="GET"><con:settings/><con:parameters><con:parameter><con:name>belongsTo</con:name><con:value xsi:nil="true"/><con:style>QUERY</con:style><con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type><con:default xsi:nil="true"/></con:parameter></con:parameters><con:representation type="RESPONSE" id=""><con:mediaType>application/xml</con:mediaType><con:status>200 203</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:auth</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="RESPONSE" id=""><con:mediaType>application/json</con:mediaType><con:status>200 203</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>401</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:unauthorized</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>403</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:forbidden</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>403</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:userDisabled</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>404</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:itemNotFound</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:identityFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>400 401 403 404 500 503</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:request name="Request 1" mediaType="application/xml" accept="application/xml"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request/><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters>
<con:entry key="tokenId" value="887665443383838"/>
<con:entry key="X-Auth-Token" value="999888777666"/>
<con:entry key="belongsTo" value="1234"/>
-</con:parameters></con:request></con:method><con:method name="DELETE - revokeToken" method="DELETE"><con:settings/><con:parameters/><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>401</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:unauthorized</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>403</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:forbidden</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>404</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:itemNotFound</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:idmFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>400 401 403 404 500 503</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:request name="Request 1" mediaType="application/xml"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request/><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters>
+</con:parameters></con:request></con:method><con:method name="DELETE - revokeToken" method="DELETE"><con:settings/><con:parameters/><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>401</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:unauthorized</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>403</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:forbidden</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>404</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:itemNotFound</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:identityFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>400 401 403 404 500 503</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:request name="Request 1" mediaType="application/xml"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request/><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters>
<con:entry key="tokenId" value="3u37737"/>
<con:entry key="X-Auth-Token" value="3838737726"/>
</con:parameters></con:request></con:method></con:resource><con:method name="POST - authenticate" method="POST"><con:settings/><con:parameters/><con:representation type="REQUEST" id=""><con:mediaType>application/xml</con:mediaType><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:passwordCredentials</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="REQUEST" id=""><con:mediaType>application/json</con:mediaType><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="RESPONSE" id=""><con:mediaType>application/xml</con:mediaType><con:status>200
203</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:auth</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="RESPONSE" id=""><con:mediaType>application/json</con:mediaType><con:status>200
-203</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>401</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:unauthorized</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>403</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:userDisabled</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:idmFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>401
+203</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>401</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:unauthorized</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>403</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:userDisabled</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:identityFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>401
403 400 500 503</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:request name="Request 1" mediaType="application/xml" postQueryString="false" accept="application/xml"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request>&lt;passwordCredentials
password="secrete" username="joeuser"
xmlns="http://docs.openstack.org/identity/api/v2.0"/></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters/></con:request></con:method></con:resource><con:resource name="tenants" path="tenants"><con:settings/><con:parameters><con:parameter required="true"><con:name>X-Auth-Token</con:name><con:value xsi:nil="true"/><con:style>HEADER</con:style><con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type><con:default xsi:nil="true"/></con:parameter></con:parameters><con:resource name="{tenantId}" path="{tenantId}"><con:settings/><con:parameters><con:parameter><con:name>tenantId</con:name><con:value xsi:nil="true"/><con:style>TEMPLATE</con:style><con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type><con:default xsi:nil="true"/></con:parameter></con:parameters><con:method name="GET - getTenant" method="GET"><con:settings/><con:parameters/><con:representation type="RESPONSE" id=""><con:mediaType>application/xml</con:mediaType><con:status>200
203</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:tenant</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="RESPONSE" id=""><con:mediaType>application/json</con:mediaType><con:status>200
-203</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>401</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:unauthorized</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>403</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:forbidden</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>404</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:itemNotFound</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:idmFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>400
+203</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>401</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:unauthorized</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>403</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:forbidden</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>404</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:itemNotFound</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:identityFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>400
401 403 404 500 503</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:request name="Request 1" mediaType="application/xml" accept="application/xml"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request/><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters>
<con:entry key="tenantId" value="1234"/>
<con:entry key="X-Auth-Token" value="999888777666"/>
-</con:parameters></con:request></con:method><con:method name="PUT - updateTenant" method="PUT"><con:settings/><con:parameters/><con:representation type="REQUEST" id=""><con:mediaType>application/xml</con:mediaType><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:tenant</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="REQUEST" id=""><con:mediaType>application/json</con:mediaType><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="RESPONSE" id=""><con:mediaType>application/xml</con:mediaType><con:status>200</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:tenant</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="RESPONSE" id=""><con:mediaType>application/json</con:mediaType><con:status>200</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>401</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:unauthorized</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>403</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:forbidden</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>404</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:itemNotFound</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:idmFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>401
+</con:parameters></con:request></con:method><con:method name="PUT - updateTenant" method="PUT"><con:settings/><con:parameters/><con:representation type="REQUEST" id=""><con:mediaType>application/xml</con:mediaType><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:tenant</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="REQUEST" id=""><con:mediaType>application/json</con:mediaType><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="RESPONSE" id=""><con:mediaType>application/xml</con:mediaType><con:status>200</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:tenant</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="RESPONSE" id=""><con:mediaType>application/json</con:mediaType><con:status>200</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>401</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:unauthorized</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>403</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:forbidden</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>404</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:itemNotFound</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:identityFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>401
403 404 400 500 503</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:request name="Request 1" mediaType="application/xml" postQueryString="false"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request>&lt;v1:tenant enabled="true" xmlns:v1="http://docs.openstack.org/identity/api/v2.0">
&lt;v1:description>New Description&lt;/v1:description>
&lt;/v1:tenant></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters>
<con:entry key="tenantId" value="1234"/>
<con:entry key="X-Auth-Token" value="999888777666"/>
-</con:parameters></con:request></con:method><con:method name="DELETE - deleteTenant" method="DELETE"><con:settings/><con:parameters/><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>401</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:unauthorized</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>403</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:forbidden</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>404</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:itemNotFound</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:idmFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>400
+</con:parameters></con:request></con:method><con:method name="DELETE - deleteTenant" method="DELETE"><con:settings/><con:parameters/><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>401</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:unauthorized</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>403</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:forbidden</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>404</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:itemNotFound</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:identityFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>400
401 403 404 500 503</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:request name="Request 1" mediaType="application/xml"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;entry key="Accept" value="application/xml" xmlns="http://eviware.com/soapui/config"/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request/><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters>
<con:entry key="tenantId" value="0000"/>
<con:entry key="X-Auth-Token" value="999888777666"/>
</con:parameters></con:request></con:method></con:resource><con:method name="GET - getTenants" method="GET"><con:settings/><con:parameters><con:parameter><con:name>marker</con:name><con:value xsi:nil="true"/><con:style>QUERY</con:style><con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type><con:default xsi:nil="true"/></con:parameter><con:parameter><con:name>limit</con:name><con:value xsi:nil="true"/><con:style>QUERY</con:style><con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:int</con:type><con:default xsi:nil="true"/></con:parameter></con:parameters><con:representation type="RESPONSE" id=""><con:mediaType>application/xml</con:mediaType><con:status>200
203</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:tenants</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="RESPONSE" id=""><con:mediaType>application/json</con:mediaType><con:status>200
-203</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>401</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:unauthorized</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>403</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:forbidden</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>404</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:itemNotFound</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:idmFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>400
+203</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>401</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:unauthorized</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>403</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:forbidden</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>404</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:itemNotFound</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:identityFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>400
401 403 404 500 503</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:request name="Request 1" mediaType="application/xml"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request/><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters><entry key="X-Auth-Token" value="999888777666" xmlns="http://eviware.com/soapui/config"/></con:parameters></con:request></con:method><con:method name="POST - createTenant" method="POST"><con:settings/><con:parameters/><con:representation type="REQUEST" id=""><con:mediaType>application/xml</con:mediaType><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:tenant</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="REQUEST" id=""><con:mediaType>application/json</con:mediaType><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="RESPONSE" id=""><con:mediaType>application/xml</con:mediaType><con:status>201</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:tenant</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="RESPONSE" id=""><con:mediaType>application/json</con:mediaType><con:status>201</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>401</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:unauthorized</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>403</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:forbidden</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType>
<con:status>409</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:tenantConflict</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType>
-<con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:idmFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>401
+<con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:identityFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>401
403 400 409 500 503</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:request name="Request 1" mediaType="application/xml" postQueryString="false" accept="application/xml"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request>&lt;v1:tenant
enabled="true" id="my_new_tenant"
xmlns:v1="http://docs.openstack.org/identity/api/v2.0">&lt;v1:description>This
is a description of my tenant. Thank you very
much.&lt;/v1:description>&lt;/v1:tenant></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters><entry key="X-Auth-Token" value="999888777666" xmlns="http://eviware.com/soapui/config"/></con:parameters></con:request></con:method></con:resource><con:method name="GET - getVersionInfo" method="GET"><con:settings/><con:parameters/><con:representation type="RESPONSE" id=""><con:mediaType>application/xml</con:mediaType><con:status>200
203</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/common/api/v1.0">v1:version</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="RESPONSE" id=""><con:mediaType>application/json</con:mediaType><con:status>200
-203</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:idmFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>400
+203</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>400</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:badRequest</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>500</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:identityFault</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/xml</con:mediaType><con:status>503</con:status><con:params/><con:element xmlns:v1="http://docs.openstack.org/identity/api/v2.0">v1:serviceUnavailable</con:element><con:description xsi:nil="true"/></con:representation><con:representation type="FAULT" id=""><con:mediaType>application/json</con:mediaType><con:status>400
500 503</con:status><con:params/><con:element xsi:nil="true"/><con:description xsi:nil="true"/></con:representation><con:request name="Request 1" mediaType="application/xml" accept="application/xml"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request/><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters/></con:request></con:method></con:resource></con:interface><con:testSuite name="Keystone Tests"><con:settings/><con:runType>SEQUENTIAL</con:runType><con:testCase failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Admin Credential Check" searchProperties="true" id="29b2fa4b-e1c3-49c4-a7e6-334724e74bb9"><con:settings/><con:testStep type="restrequest" name="GET - validateToken - Valid Token"><con:settings/><con:config service="Keystone" resourcePath="/v1.0/token/{tokenId}" methodName="GET - validateToken" xsi:type="con:RestRequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:restRequest name="GET - validateToken - Valid Token" mediaType="application/xml" accept="application/xml"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080</con:endpoint><con:request/><con:assertion type="Simple Contains"><con:configuration><token>auth</token><ignoreCase>false</ignoreCase><useRegEx>false</useRegEx></con:configuration></con:assertion><con:assertion type="Simple Contains"><con:configuration><token>token</token><ignoreCase>false</ignoreCase><useRegEx>false</useRegEx></con:configuration></con:assertion><con:assertion type="Simple Contains"><con:configuration><token>user</token><ignoreCase>false</ignoreCase><useRegEx>false</useRegEx></con:configuration></con:assertion><con:assertion type="Schema Compliance"><con:configuration><definition/></con:configuration></con:assertion><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters>
<con:entry key="tokenId" value="887665443383838"/>
<con:entry key="X-Auth-Token" value="999888777666"/>
diff --git a/test/unit/test_authentication.py b/test/unit/test_authentication.py
index b1ee112e..a6531473 100644
--- a/test/unit/test_authentication.py
+++ b/test/unit/test_authentication.py
@@ -1,3 +1,23 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+# Copyright (c) 2010-2011 OpenStack, LLC.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+import httplib2
+import json
+from lxml import etree
import os
import sys
# Need to access identity module
@@ -5,34 +25,32 @@ sys.path.append(os.path.abspath(os.path.join(os.path.abspath(__file__),
'..', '..', '..', '..', 'keystone')))
import unittest
from webtest import TestApp
-import httplib2
-import json
-from lxml import etree
import test_common as utils
-class authentication_test(unittest.TestCase):
+class AuthenticationTest(unittest.TestCase):
def setUp(self):
self.tenant = utils.get_tenant()
- self.token = utils.get_token('joeuser', 'secrete', 'token')
- self.user = utils.get_user()
+ self.token = utils.get_token('joeuser', 'secrete', self.tenant,
+ 'token')
+ #self.user = utils.get_user()
self.userdisabled = utils.get_userdisabled()
self.auth_token = utils.get_auth_token()
- self.exp_auth_token = utils.get_exp_auth_token()
- self.disabled_token = utils.get_disabled_token()
+ #self.exp_auth_token = utils.get_exp_auth_token()
+ #self.disabled_token = utils.get_disabled_token()
def tearDown(self):
utils.delete_token(self.token, self.auth_token)
def test_a_authorize(self):
- resp, content = utils.get_token('joeuser', 'secrete', '')
+ resp, content = utils.get_token('joeuser', 'secrete', self.tenant)
self.assertEqual(200, int(resp['status']))
self.assertEqual('application/json', utils.content_type(resp))
def test_a_authorize_xml(self):
- resp, content = utils.get_token_xml('joeuser', 'secrete', '',
+ resp, content = utils.get_token_xml('joeuser', 'secrete',
self.tenant)
self.assertEqual(200, int(resp['status']))
self.assertEqual('application/xml', utils.content_type(resp))
@@ -40,10 +58,12 @@ class authentication_test(unittest.TestCase):
def test_a_authorize_user_disabled(self):
header = httplib2.Http(".cache")
url = '%stoken' % utils.URL
- body = {"passwordCredentials": {"username": "disabled",
- "password": "secrete"}}
+ body = {"passwordCredentials": {"username": self.userdisabled,
+ "password": "secrete",
+ "tenantId": self.tenant}}
resp, content = header.request(url, "POST", body=json.dumps(body),
headers={"Content-Type": "application/json"})
+
content = json.loads(content)
if int(resp['status']) == 500:
self.fail('Identity Fault')
@@ -58,11 +78,12 @@ class authentication_test(unittest.TestCase):
body = '<?xml version="1.0" encoding="UTF-8"?> \
<passwordCredentials \
xmlns="http://docs.openstack.org/identity/api/v2.0" \
- password="secrete" username="disabled" \
- />'
+ password="secrete" username="%s" \
+ tenantId="%s"/>' % (self.userdisabled, self.tenant)
resp, content = header.request(url, "POST", body=body,
headers={"Content-Type": "application/xml",
"ACCEPT": "application/xml"})
+
content = etree.fromstring(content)
if int(resp['status']) == 500:
self.fail('Identity Fault')
@@ -75,7 +96,8 @@ class authentication_test(unittest.TestCase):
header = httplib2.Http(".cache")
url = '%stoken' % utils.URL
body = {"passwordCredentials": {"username-w": "disabled",
- "password": "secrete"}}
+ "password": "secrete",
+ "tenantId": self.tenant}}
resp, content = header.request(url, "POST", body=json.dumps(body),
headers={"Content-Type": "application/json"})
content = json.loads(content)
@@ -93,7 +115,7 @@ class authentication_test(unittest.TestCase):
<passwordCredentials \
xmlns="http://docs.openstack.org/identity/api/v2.0" \
password="secrete" username-w="disabled" \
- />'
+ tenantId="%s"/>' % self.tenant
resp, content = header.request(url, "POST", body=body,
headers={"Content-Type": "application/xml",
"ACCEPT": "application/xml"})
@@ -105,5 +127,55 @@ class authentication_test(unittest.TestCase):
self.assertEqual(400, int(resp['status']))
self.assertEqual('application/xml', utils.content_type(resp))
+
+class MultiToken(unittest.TestCase):
+
+ def setUp(self):
+ self.auth_token = utils.get_auth_token()
+ self.userdisabled = utils.get_userdisabled()
+ resp1, content1 = utils.create_tenant('test_tenant1', self.auth_token)
+ #create tenant2
+ resp2, content2 = utils.create_tenant('test_tenant2', self.auth_token)
+ #create user1 with tenant1
+ resp3, content3 = utils.create_user('test_tenant1', 'test_user1',
+ self.auth_token)
+ resp3, content3 = utils.create_user('test_tenant1', 'test_user2',
+ self.auth_token)
+ #add user1 to tenant2
+ resp4, content4 = utils.add_user_json('test_tenant2', 'test_user1',
+ self.auth_token)
+ #self.exp_auth_token = utils.get_exp_auth_token()
+ #self.disabled_token = utils.get_disabled_token()
+
+ def tearDown(self):
+ utils.delete_user('test_tenant1', 'test_user1', self.auth_token)
+ utils.delete_user('test_tenant1', 'test_user2', self.auth_token)
+ utils.delete_user('test_tenant2', 'test_user1', self.auth_token)
+ utils.delete_tenant('test_tenant1', self.auth_token)
+ utils.delete_tenant('test_tenant2', self.auth_token)
+
+ """ INVALID TEST - we're changing how we delegate access to second tenant
+ def test_multi_token(self):
+ #get token for user1 with tenant1
+ token1 = utils.get_token('test_user1', 'secrete', 'test_tenant1',\
+ 'token')
+ #get token for user 1 with tenant2
+ token2 = utils.get_token('test_user1', 'secrete', 'test_tenant2',\
+ 'token')
+ #test result :: both token should be different
+ self.assertNotEqual(token1, None)
+ self.assertNotEqual(token2, None)
+ self.assertNotEqual(token1, token2)
+
+ resp = utils.delete_token(token1, self.auth_token)
+ resp = utils.delete_token(token2, self.auth_token)
+ """
+
+ def test_unassigned_user(self):
+ resp, content = utils.get_token('test_user2', 'secrete', \
+ 'test_tenant2')
+
+ self.assertEqual(403, int(resp['status']))
+
if __name__ == '__main__':
unittest.main()
diff --git a/test/unit/test_common.py b/test/unit/test_common.py
index 47838310..07c46f50 100644
--- a/test/unit/test_common.py
+++ b/test/unit/test_common.py
@@ -1,21 +1,38 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+# Copyright (c) 2010-2011 OpenStack, LLC.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+import httplib2
+import json
+from lxml import etree
import os
import sys
-# Need to access identity module
sys.path.append(os.path.abspath(os.path.join(os.path.abspath(__file__),
'..', '..', '..', '..', 'keystone')))
import unittest
-from webtest import TestApp
-import httplib2
-import json
-from lxml import etree
+
URL = 'http://localhost:8080/v2.0/'
-def get_token(user, pswd, kind='', tenant_id=None):
+def get_token(user, pswd, tenant_id, kind=''):
header = httplib2.Http(".cache")
url = '%stoken' % URL
+ # to test multi token, removing below code
if not tenant_id:
body = {"passwordCredentials": {"username": user,
"password": pswd}}
@@ -23,17 +40,22 @@ def get_token(user, pswd, kind='', tenant_id=None):
body = {"passwordCredentials": {"username": user,
"password": pswd,
"tenantId": tenant_id}}
-
+
resp, content = header.request(url, "POST", body=json.dumps(body),
headers={"Content-Type": "application/json"})
- content = json.loads(content)
- token = str(content['auth']['token']['id'])
+
+ if int(resp['status']) == 200:
+ content = json.loads(content)
+ token = str(content['auth']['token']['id'])
+ else:
+ token = None
if kind == 'token':
return token
else:
return (resp, content)
+
def delete_token(token, auth_token):
header = httplib2.Http(".cache")
url = '%stoken/%s' % (URL, token)
@@ -74,7 +96,7 @@ def delete_tenant(tenantid, auth_token):
resp, content = header.request(url, "DELETE", body='{}',
headers={"Content-Type": "application/json",
"X-Auth-Token": auth_token})
- return (resp, content)
+ return resp
def delete_tenant_group(groupid, tenantid, auth_token):
@@ -93,6 +115,7 @@ def create_global_group(groupid, auth_token):
body = {"group": {"id": groupid,
"description": "A description ..."}}
resp, content = header.request(url, "POST", body=json.dumps(body),
+
headers={"Content-Type": "application/json",
"X-Auth-Token": auth_token})
return (resp, content)
@@ -131,10 +154,11 @@ def delete_global_group_xml(groupid, auth_token):
return (resp, content)
-def get_token_xml(user, pswd, type='', tenant_id=None):
+def get_token_xml(user, pswd, tenant_id, type=''):
header = httplib2.Http(".cache")
url = '%stoken' % URL
- if tenant_id:
+ # to test multi token, removing below code
+ """if tenant_id:
body = '<?xml version="1.0" encoding="UTF-8"?> \
<passwordCredentials \
xmlns="http://docs.openstack.org/identity/api/v2.0" \
@@ -144,14 +168,24 @@ def get_token_xml(user, pswd, type='', tenant_id=None):
body = '<?xml version="1.0" encoding="UTF-8"?> \
<passwordCredentials \
xmlns="http://docs.openstack.org/identity/api/v2.0" \
- password="%s" username="%s" /> ' % (pswd, user)
+ password="%s" username="%s" /> ' % (pswd, user)"""
+ # adding code ie., body
+ body = '<?xml version="1.0" encoding="UTF-8"?> \
+ <passwordCredentials \
+ xmlns="http://docs.openstack.org/identity/api/v2.0" \
+ password="%s" username="%s" \
+ tenantId="%s"/> ' % (pswd, user, tenant_id)
resp, content = header.request(url, "POST", body=body,
headers={"Content-Type": "application/xml",
"ACCEPT": "application/xml"})
- dom = etree.fromstring(content)
- root = dom.find("{http://docs.openstack.org/identity/api/v2.0}token")
- token_root = root.attrib
- token = str(token_root['id'])
+ if int(resp['status']) == 200:
+ dom = etree.fromstring(content)
+ root = dom.find("{http://docs.openstack.org/identity/api/v2.0}token")
+ token_root = root.attrib
+ token = str(token_root['id'])
+ else:
+ token = None
+
if type == 'token':
return token
else:
@@ -205,7 +239,8 @@ def delete_tenant_xml(tenantid, auth_token):
headers={"Content-Type": "application/xml",
"X-Auth-Token": auth_token,
"ACCEPT": "application/xml"})
- return (resp, content)
+
+ return resp
def delete_tenant_group_xml(groupid, tenantid, auth_token):
@@ -218,13 +253,17 @@ def delete_tenant_group_xml(groupid, tenantid, auth_token):
return (resp, content)
-def create_user(tenantid, userid, auth_token):
+def create_user(tenantid, userid, auth_token, email=None):
header = httplib2.Http(".cache")
url = '%stenants/%s/users' % (URL, tenantid)
+ if email is not None:
+ email_id = email
+ else:
+ email_id = "%s@rackspace.com" % userid
body = {"user": {"password": "secrete",
"id": userid,
"tenantId": tenantid,
- "email": "%s@rackspace.com" % userid,
+ "email": "%s" % email_id,
"enabled": True}}
resp, content = header.request(url, "POST", body=json.dumps(body),
headers={"Content-Type": "application/json",
@@ -235,22 +274,24 @@ def create_user(tenantid, userid, auth_token):
def delete_user(tenant, userid, auth_token):
header = httplib2.Http(".cache")
url = '%stenants/%s/users/%s' % (URL, tenant, userid)
-
resp, content = header.request(url, "DELETE", body='{}',
headers={"Content-Type": "application/json",
"X-Auth-Token": auth_token})
-
- return (resp, content)
+ return resp
-def create_user_xml(tenantid, userid, auth_token):
+def create_user_xml(tenantid, userid, auth_token, email=None):
header = httplib2.Http(".cache")
url = '%stenants/%s/users' % (URL, tenantid)
+ if email is not None:
+ email_id = email
+ else:
+ email_id = userid
body = '<?xml version="1.0" encoding="UTF-8"?> \
<user xmlns="http://docs.openstack.org/identity/api/v2.0" \
- email="joetest@rackspace.com" \
+ email="%s" \
tenantId="%s" id="%s" \
- enabled="true" password="secrete"/>' % (tenantid, userid)
+ enabled="true" password="secrete"/>' % (email_id, tenantid, userid)
resp, content = header.request(url, "POST", body=body,
headers={"Content-Type": "application/xml",
"X-Auth-Token": auth_token,
@@ -258,6 +299,16 @@ def create_user_xml(tenantid, userid, auth_token):
return (resp, content)
+"""def delete_user(tenant, userid, auth_token):
+ h = httplib2.Http(".cache")
+ url = '%stenants/%s/users/%s' % (URL, tenant, userid)
+
+ resp, content = h.request(url, "DELETE", body='{}',
+ headers={"Content-Type": "application/json",
+ "X-Auth-Token": auth_token})
+ return resp"""
+
+
def delete_user_xml(tenantid, userid, auth_token):
header = httplib2.Http(".cache")
url = '%stenants/%s/users/%s' % (URL, tenantid, userid)
@@ -265,6 +316,176 @@ def delete_user_xml(tenantid, userid, auth_token):
headers={"Content-Type": "application/xml",
"X-Auth-Token": auth_token,
"ACCEPT": "application/xml"})
+ return resp
+
+def add_user_json(tenantid, userid, auth_token):
+ header = httplib2.Http(".cache")
+ url = '%stenants/%s/users/%s/add' % (URL, tenantid, userid)
+ resp, content = header.request(url, "PUT", body='{}',
+ headers={"Content-Type": "application/json",
+ "X-Auth-Token": auth_token})
+ return (resp, content)
+
+def add_user_xml(tenantid, userid, auth_token):
+ header = httplib2.Http(".cache")
+ url = '%stenants/%s/users/%s/add' % (URL, tenantid, userid)
+ resp, content = header.request(url, "PUT", body='{}',
+ headers={"Content-Type": "application/xml",
+ "X-Auth-Token": auth_token,
+ "ACCEPT": "application/xml"})
+ return (resp, content)
+
+def add_user_json(tenantid, userid, auth_token):
+ header = httplib2.Http(".cache")
+ url = '%stenants/%s/users/%s/add' % (URL, tenantid, userid)
+ resp, content = header.request(url, "PUT", body='{}',
+ headers={"Content-Type": "application/json",
+ "X-Auth-Token": auth_token})
+ return (resp, content)
+
+
+def add_user_xml(tenantid, userid, auth_token):
+ header = httplib2.Http(".cache")
+ url = '%stenants/%s/users/%s/add' % (URL, tenantid, userid)
+ resp, content = header.request(url, "PUT", body='{}',
+ headers={"Content-Type": "application/xml",
+ "X-Auth-Token": auth_token,
+ "ACCEPT": "application/xml"})
+ return (resp, content)
+
+
+def user_update_json(tenant_id, user_id, auth_token, email=None):
+ h = httplib2.Http(".cache")
+ url = '%stenants/%s/users/%s' % (URL, tenant_id, user_id)
+ if email is None:
+ new_email = "updatedjoeuser@rackspace.com"
+ else:
+ new_email = email
+ data = '{"user": { "email": "%s"}}' % (new_email)
+ resp, content = h.request(url, "PUT", body=data,
+ headers={"Content-Type": "application/json",
+ "X-Auth-Token": auth_token})
+ return (resp, content)
+
+
+def user_update_xml(tenant_id, user_id, auth_token, email=None):
+ h = httplib2.Http(".cache")
+ url = '%stenants/%s/users/%s' % (URL, tenant_id, user_id)
+ if email is None:
+ new_email = "updatedjoeuser@rackspace.com"
+ else:
+ new_email = email
+ data = '<?xml version="1.0" encoding="UTF-8"?> \
+ <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
+ email="%s" />' % (new_email)
+ resp, content = h.request(url, "PUT", body=data,
+ headers={"Content-Type": "application/xml",
+ "X-Auth-Token": auth_token,
+ "ACCEPT": "application/xml"})
+ return (resp, content)
+
+
+def user_get_json(tenant_id, user_id, auth_token):
+ h = httplib2.Http(".cache")
+ url = '%stenants/%s/users/%s' % (URL, tenant_id, user_id)
+ #test for Content-Type = application/json
+ resp, content = h.request(url, "GET", body='{}',
+ headers={"Content-Type": "application/json",
+ "X-Auth-Token": auth_token})
+ return (resp, content)
+
+
+def user_password_json(tenant_id, user_id, auth_token):
+ h = httplib2.Http(".cache")
+ url = '%stenants/%s/users/%s/password' % (URL, tenant_id, user_id)
+ data = '{"user": { "password": "p@ssword"}}'
+ resp, content = h.request(url, "PUT", body=data,
+ headers={"Content-Type": "application/json",
+ "X-Auth-Token": auth_token})
+ return (resp, content)
+
+
+def user_password_xml(tenant_id, user_id, auth_token):
+ h = httplib2.Http(".cache")
+ url = '%stenants/%s/users/%s/password' % (URL, tenant_id, user_id)
+ data = '<?xml version="1.0" encoding="UTF-8"?> \
+ <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
+ password="p@ssword" />'
+ resp, content = h.request(url, "PUT", body=data,
+ headers={"Content-Type": "application/xml",
+ "X-Auth-Token": auth_token,
+ "ACCEPT": "application/xml"})
+ return (resp, content)
+
+
+def user_enabled_json(tenant_id, user_id, auth_token):
+ h = httplib2.Http(".cache")
+ url = '%stenants/%s/users/%s/enabled' % (URL, tenant_id, user_id)
+ data = {"user": {"enabled": True}}
+ resp, content = h.request(url, "PUT", body=json.dumps(data),
+ headers={"Content-Type": "application/json",
+ "X-Auth-Token": auth_token})
+ return (resp, content)
+
+
+def user_enabled_xml(tenant_id, user_id, auth_token):
+ h = httplib2.Http(".cache")
+ url = '%stenants/%s/users/%s/enabled' % (URL, tenant_id, user_id)
+ data = '<?xml version="1.0" encoding="UTF-8"?> \
+ <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
+ enabled="true" />'
+ resp, content = h.request(url, "PUT", body=data,
+ headers={"Content-Type": "application/xml",
+ "X-Auth-Token": auth_token,
+ "ACCEPT": "application/xml"})
+ return (resp, content)
+
+
+def user_get_xml(tenant_id, user_id, auth_token):
+ h = httplib2.Http(".cache")
+ url = '%stenants/%s/users/%s' % (URL, tenant_id, user_id)
+ resp, content = h.request(url, "GET", body='{}',
+ headers={"Content-Type": "application/xml",
+ "X-Auth-Token": auth_token,
+ "ACCEPT": "application/xml"})
+ return (resp, content)
+
+
+def users_get_json(tenant_id, auth_token):
+ h = httplib2.Http(".cache")
+ url = '%stenants/%s/users' % (URL, tenant_id)
+ resp, content = h.request(url, "GET", body='{}',
+ headers={"Content-Type": "application/json",
+ "X-Auth-Token": auth_token})
+ return (resp, content)
+
+
+def users_get_xml(tenant_id, auth_token):
+ h = httplib2.Http(".cache")
+ url = '%stenants/%s/users' % (URL, tenant_id)
+ resp, content = h.request(url, "GET", body='{}',
+ headers={"Content-Type": "application/xml",
+ "X-Auth-Token": auth_token,
+ "ACCEPT": "application/xml"})
+ return (resp, content)
+
+
+def users_group_get_json(tenant_id, user_id, auth_token):
+ h = httplib2.Http(".cache")
+ url = '%stenants/%s/users/%s/groups' % (URL, tenant_id, user_id)
+ resp, content = h.request(url, "GET", body='{}',
+ headers={"Content-Type": "application/json",
+ "X-Auth-Token": auth_token})
+ return (resp, content)
+
+
+def users_group_get_xml(tenant_id, user_id, auth_token):
+ h = httplib2.Http(".cache")
+ url = '%stenants/%s/users/%s/groups' % (URL, tenant_id, user_id)
+ resp, content = h.request(url, "GET", body='{}',
+ headers={"Content-Type": "application/xml",
+ "X-Auth-Token": auth_token,
+ "ACCEPT": "application/xml"})
return (resp, content)
@@ -411,6 +632,10 @@ def get_tenant():
return '1234'
+def get_another_tenant():
+ return '4321'
+
+
def get_user():
return 'test_user'
@@ -457,7 +682,6 @@ def handle_user_resp(self, content, respvalue, resptype):
content = etree.fromstring(content)
self.tenant = content.get("tenantId")
self.id = content.get("id")
-
if respvalue == 500:
self.fail('Identity Fault')
elif respvalue == 503:
diff --git a/test/unit/test_exthandler.py b/test/unit/test_exthandler.py
index 4d09c148..5d41aeac 100644
--- a/test/unit/test_exthandler.py
+++ b/test/unit/test_exthandler.py
@@ -26,22 +26,22 @@ class UrlExtensionFilterTest(unittest.TestCase):
self.filter = UrlExtensionFilter(MockWsgiApp(), {})
def test_xml_extension(self):
- env = {'PATH_INFO': '/v1.0/someresource.xml'}
+ env = {'PATH_INFO': '/v2.0/someresource.xml'}
self.filter(env, _start_response)
- self.assertEqual('/v1.0/someresource', env['PATH_INFO'])
+ self.assertEqual('/v2.0/someresource', env['PATH_INFO'])
self.assertEqual('application/xml', env['HTTP_ACCEPT'])
def test_json_extension(self):
- env = {'PATH_INFO': '/v1.0/someresource.json'}
+ env = {'PATH_INFO': '/v2.0/someresource.json'}
self.filter(env, _start_response)
- self.assertEqual('/v1.0/someresource', env['PATH_INFO'])
+ self.assertEqual('/v2.0/someresource', env['PATH_INFO'])
self.assertEqual('application/json', env['HTTP_ACCEPT'])
def test_extension_overrides_header(self):
- env = {'PATH_INFO': '/v1.0/someresource.json',
+ env = {'PATH_INFO': '/v2.0/someresource.json',
'HTTP_ACCEPT': 'application/xml'}
self.filter(env, _start_response)
- self.assertEqual('/v1.0/someresource', env['PATH_INFO'])
+ self.assertEqual('/v2.0/someresource', env['PATH_INFO'])
self.assertEqual('application/json', env['HTTP_ACCEPT'])
diff --git a/test/unit/test_groups.py b/test/unit/test_groups.py
index 419536d0..333f419b 100644
--- a/test/unit/test_groups.py
+++ b/test/unit/test_groups.py
@@ -1,25 +1,41 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+# Copyright (c) 2010-2011 OpenStack, LLC.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+import httplib2
+import json
+from lxml import etree
import os
import sys
-# Need to access identity module
sys.path.append(os.path.abspath(os.path.join(os.path.abspath(__file__),
'..', '..', '..', '..', 'keystone')))
import unittest
from webtest import TestApp
-import httplib2
-import json
-from lxml import etree
import test_common as utils
+
##
## Global Group Tests
##
-class global_group_test(unittest.TestCase):
+class GlobalGroupTest(unittest.TestCase):
def setUp(self):
- self.token = utils.get_token('joeuser', 'secrete', 'token')
self.globaltenant = utils.get_global_tenant()
self.user = utils.get_user()
self.userdisabled = utils.get_userdisabled()
@@ -27,73 +43,77 @@ class global_group_test(unittest.TestCase):
self.exp_auth_token = utils.get_exp_auth_token()
self.disabled_token = utils.get_disabled_token()
self.global_group = 'test_global_group_add'
+ utils.create_tenant(self.globaltenant, str(self.auth_token))
+ utils.create_user(self.globaltenant, self.user, self.auth_token)
+ utils.add_user_json(self.globaltenant, self.user, self.auth_token)
+ self.token = utils.get_token(self.user, 'secrete', self.globaltenant,
+ 'token')
def tearDown(self):
- resp, content = utils.delete_global_group(self.global_group,
- self.auth_token)
- resp, content = utils.delete_tenant(self.globaltenant, self.auth_token)
+ utils.delete_user(self.globaltenant, self.user, str(self.auth_token))
+ utils.delete_global_group(self.global_group, self.auth_token)
+ utils.delete_tenant(self.globaltenant, self.auth_token)
-class create_global_group_test(global_group_test):
+class CreateGlobalGroupTest(GlobalGroupTest):
def test_global_group_create(self):
- respG, contentG = utils.delete_global_group(self.global_group,
- str(self.auth_token))
- respG, contentG = utils.create_global_group(self.global_group,
+ utils.delete_global_group(self.global_group, str(self.auth_token))
+ resp_new, content_new = utils.create_global_group(self.global_group,
str(self.auth_token))
- if int(respG['status']) == 500:
- self.fail('Identity Fault')
- elif int(respG['status']) == 503:
+ if int(resp_new['status']) == 500:
+ self.fail('IDM fault')
+ elif int(resp_new['status']) == 503:
self.fail('Service Not Available')
- if int(respG['status']) not in (200, 201):
- self.fail('Failed due to %d' % int(respG['status']))
+ if int(resp_new['status']) not in (200, 201):
+ self.fail('Failed due to %d' % int(resp_new['status']))
def test_global_group_create_xml(self):
- respG, contentG = utils.delete_global_group_xml(self.global_group,
- str(self.auth_token))
- respG, contentG = utils.create_global_group_xml(self.global_group,
+ utils.delete_global_group_xml(self.global_group, str(self.auth_token))
+ resp_new, content_new = utils.create_global_group_xml(\
+ self.global_group,
str(self.auth_token))
- if int(respG['status']) == 500:
- self.fail('Identity Fault')
- elif int(respG['status']) == 503:
+ if int(resp_new['status']) == 500:
+ self.fail('IDM fault')
+ elif int(resp_new['status']) == 503:
self.fail('Service Not Available')
- if int(respG['status']) not in (200, 201):
- self.fail('Failed due to %d' % int(respG['status']))
+ if int(resp_new['status']) not in (200, 201):
+ self.fail('Failed due to %d' % int(resp_new['status']))
def test_global_group_create_again(self):
- respG, contentG = utils.create_global_group(self.global_group,
- str(self.auth_token))
- respG, contentG = utils.create_global_group(self.global_group,
+ utils.create_global_group(self.global_group, str(self.auth_token))
+ resp_new, content_new = utils.create_global_group(self.global_group,
str(self.auth_token))
- if int(respG['status']) == 500:
- self.fail('Identity Fault')
- elif int(respG['status']) == 503:
+ if int(resp_new['status']) == 500:
+ self.fail('IDM fault')
+ elif int(resp_new['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(409, int(respG['status']))
+ self.assertEqual(409, int(resp_new['status']))
def test_global_group_create_again_xml(self):
- respG, contentG = utils.create_global_group_xml(self.global_group,
- str(self.auth_token))
- respG, contentG = utils.create_global_group_xml(self.global_group,
- str(self.auth_token))
- contentG = etree.fromstring(contentG)
- if int(respG['status']) == 500:
- self.fail('Identity Fault')
- elif int(respG['status']) == 503:
+ utils.create_global_group_xml(self.global_group, str(self.auth_token))
+ resp_new, content_new = utils.create_global_group_xml(\
+ self.global_group,
+ str(self.auth_token))
+ content_new = etree.fromstring(content_new)
+ if int(resp_new['status']) == 500:
+ self.fail('IDM fault')
+ elif int(resp_new['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(409, int(respG['status']))
+ self.assertEqual(409, int(resp_new['status']))
def test_global_group_create_unauthorized_token(self):
- h = httplib2.Http(".cache")
- respG, contentG = utils.create_global_group_xml(self.global_group,
- str(self.auth_token))
+ header = httplib2.Http(".cache")
+ resp_new, content_new = utils.create_global_group_xml(\
+ self.global_group,
+ str(self.auth_token))
url = '%sgroups' % (utils.URL)
body = {"group": {"id": self.global_group,
"description": "A description ..."}}
- resp, content = h.request(url, "POST", body=json.dumps(body),
+ resp, content = header.request(url, "POST", body=json.dumps(body),
headers={"Content-Type": "application/json",
"X-Auth-Token": self.token})
if int(resp['status']) == 500:
@@ -103,14 +123,14 @@ class create_global_group_test(global_group_test):
self.assertEqual(401, int(resp['status']))
def test_global_group_create_unauthorized_token_xml(self):
- h = httplib2.Http(".cache")
+ header = httplib2.Http(".cache")
url = '%sgroups' % (utils.URL)
body = '<?xml version="1.0" encoding="UTF-8"?> \
<group xmlns="http://docs.openstack.org/identity/api/v2.0" \
id="%s"> \
<description>A description...</description> \
</group>' % self.global_group
- resp, content = h.request(url, "POST", body=body,
+ resp, content = header.request(url, "POST", body=body,
headers={"Content-Type": "application/xml",
"X-Auth-Token": self.token,
"ACCEPT": "application/xml"})
@@ -121,11 +141,11 @@ class create_global_group_test(global_group_test):
self.assertEqual(401, int(resp['status']))
def test_global_group_create_expired_token(self):
- h = httplib2.Http(".cache")
+ header = httplib2.Http(".cache")
url = '%sgroups' % (utils.URL)
body = {"group": {"id": self.global_group,
"description": "A description ..."}}
- resp, content = h.request(url, "POST", body=json.dumps(body),
+ resp, content = header.request(url, "POST", body=json.dumps(body),
headers={"Content-Type": "application/json",
"X-Auth-Token": \
self.exp_auth_token})
@@ -136,13 +156,13 @@ class create_global_group_test(global_group_test):
self.assertEqual(403, int(resp['status']))
def test_global_group_create_expired_token_xml(self):
- h = httplib2.Http(".cache")
+ header = httplib2.Http(".cache")
url = '%sgroups' % (utils.URL)
body = '<?xml version="1.0" encoding="UTF-8"?> \
<group xmlns="http://docs.openstack.org/identity/api/v2.0" \
id="%s"><description>A description...</description> \
</group>' % self.globaltenant
- resp, content = h.request(url, "POST", body=body,
+ resp, content = header.request(url, "POST", body=body,
headers={"Content-Type": "application/xml",
"X-Auth-Token": self.exp_auth_token,
"ACCEPT": "application/xml"})
@@ -153,11 +173,11 @@ class create_global_group_test(global_group_test):
self.assertEqual(403, int(resp['status']))
def test_global_group_create_missing_token(self):
- h = httplib2.Http(".cache")
+ header = httplib2.Http(".cache")
url = '%sgroups' % (utils.URL)
body = {"group": {"id": self.global_group,
"description": "A description ..."}}
- resp, content = h.request(url, "POST", body=json.dumps(body),
+ resp, content = header.request(url, "POST", body=json.dumps(body),
headers={"Content-Type": "application/json"})
if int(resp['status']) == 500:
self.fail('Identity Fault')
@@ -166,13 +186,13 @@ class create_global_group_test(global_group_test):
self.assertEqual(401, int(resp['status']))
def test_global_group_create_missing_token_xml(self):
- h = httplib2.Http(".cache")
+ header = httplib2.Http(".cache")
url = '%sgroups' % (utils.URL)
body = '<?xml version="1.0" encoding="UTF-8"?> \
<group xmlns="http://docs.openstack.org/identity/api/v2.0" \
id="%s"><description>A description...</description> \
</group>' % self.global_group
- resp, content = h.request(url, "POST", body=body,
+ resp, content = header.request(url, "POST", body=body,
headers={"Content-Type": "application/xml",
"ACCEPT": "application/xml"})
if int(resp['status']) == 500:
@@ -182,11 +202,11 @@ class create_global_group_test(global_group_test):
self.assertEqual(401, int(resp['status']))
def test_global_group_create_disabled_token(self):
- h = httplib2.Http(".cache")
+ header = httplib2.Http(".cache")
url = '%sgroups' % (utils.URL)
body = '{"group": { "id": "%s", \
"description": "A description ..." } }' % self.global_group
- resp, content = h.request(url, "POST", body=body,
+ resp, content = header.request(url, "POST", body=body,
headers={"Content-Type": "application/json",
"X-Auth-Token": \
self.disabled_token})
@@ -197,13 +217,13 @@ class create_global_group_test(global_group_test):
self.assertEqual(403, int(resp['status']))
def test_global_group_create_disabled_token_xml(self):
- h = httplib2.Http(".cache")
+ header = httplib2.Http(".cache")
url = '%sgroups' % (utils.URL)
body = '<?xml version="1.0" encoding="UTF-8"?> \
<group xmlns="http://docs.openstack.org/identity/api/v2.0" \
id="%s"><description>A description...</description> \
</group>' % self.global_group
- resp, content = h.request(url, "POST", body=body,
+ resp, content = header.request(url, "POST", body=body,
headers={"Content-Type": "application/xml",
"X-Auth-Token": self.disabled_token,
"ACCEPT": "application/xml"})
@@ -214,11 +234,11 @@ class create_global_group_test(global_group_test):
self.assertEqual(403, int(resp['status']))
def test_global_group_create_invalid_token(self):
- h = httplib2.Http(".cache")
+ header = httplib2.Http(".cache")
url = '%sgroups' % (utils.URL)
body = '{"group": { "id": "%s", \
"description": "A description ..." } }' % self.globaltenant
- resp, content = h.request(url, "POST", body=body,
+ resp, content = header.request(url, "POST", body=body,
headers={"Content-Type": "application/json",
"X-Auth-Token": 'nonexsitingtoken'})
if int(resp['status']) == 500:
@@ -228,13 +248,13 @@ class create_global_group_test(global_group_test):
self.assertEqual(404, int(resp['status']))
def test_global_group_create_invalid_token_xml(self):
- h = httplib2.Http(".cache")
+ header = httplib2.Http(".cache")
url = '%sgroups' % (utils.URL)
body = '<?xml version="1.0" encoding="UTF-8"?> \
<group xmlns="http://docs.openstack.org/identity/api/v2.0" \
id="%s"><description>A description...</description> \
</group>' % self.global_group
- resp, content = h.request(url, "POST", body=body,
+ resp, content = header.request(url, "POST", body=body,
headers={"Content-Type": "application/xml",
"X-Auth-Token": 'nonexsitingtoken',
"ACCEPT": "application/xml"})
@@ -245,17 +265,16 @@ class create_global_group_test(global_group_test):
self.assertEqual(404, int(resp['status']))
-class get_global_groups_test(global_group_test):
+class GetGlobalGroupsTest(GlobalGroupTest):
def test_get_global_groups(self):
- h = httplib2.Http(".cache")
- respG, contentG = utils.delete_global_group(self.global_group,
- str(self.auth_token))
- respG, contentG = utils.create_global_group(self.global_group,
+ header = httplib2.Http(".cache")
+ utils.delete_global_group(self.global_group, str(self.auth_token))
+ resp_new, content_new = utils.create_global_group(self.global_group,
str(self.auth_token))
url = '%sgroups' % (utils.URL)
- resp, content = h.request(url, "GET", body='{}',
+ resp, content = header.request(url, "GET", body='{}',
headers={"Content-Type": "application/json",
"X-Auth-Token": self.auth_token})
if int(resp['status']) == 500:
@@ -265,11 +284,10 @@ class get_global_groups_test(global_group_test):
self.assertEqual(200, int(resp['status']))
def test_get_global_groups_xml(self):
- h = httplib2.Http(".cache")
- respG, contentG = utils.create_global_group_xml(self.global_group,
- str(self.auth_token))
+ header = httplib2.Http(".cache")
+ utils.create_global_group_xml(self.global_group, str(self.auth_token))
url = '%sgroups' % (utils.URL)
- resp, content = h.request(url, "GET", body='',
+ resp, content = header.request(url, "GET", body='',
headers={"Content-Type": "application/xml",
"X-Auth-Token": self.auth_token,
"ACCEPT": "application/xml"})
@@ -280,12 +298,12 @@ class get_global_groups_test(global_group_test):
self.assertEqual(200, int(resp['status']))
def test_get_global_groups_unauthorized_token(self):
- h = httplib2.Http(".cache")
- respG, contentG = utils.create_global_group(self.global_group,
+ header = httplib2.Http(".cache")
+ resp_new, content_new = utils.create_global_group(self.global_group,
str(self.auth_token))
url = '%sgroups' % (utils.URL)
#test for Content-Type = application/json
- resp, content = h.request(url, "GET", body='{}',
+ resp, content = header.request(url, "GET", body='{}',
headers={"Content-Type": "application/json",
"X-Auth-Token": self.token})
if int(resp['status']) == 500:
@@ -295,12 +313,13 @@ class get_global_groups_test(global_group_test):
self.assertEqual(401, int(resp['status']))
def test_get_global_groups_unauthorized_token_xml(self):
- h = httplib2.Http(".cache")
- respG, contentG = utils.create_global_group_xml(self.global_group,
- str(self.auth_token))
+ header = httplib2.Http(".cache")
+ resp_new, content_new = utils.create_global_group_xml(\
+ self.global_group,
+ str(self.auth_token))
url = '%sgroups' % (utils.URL)
#test for Content-Type = application/json
- resp, content = h.request(url, "GET", body='',
+ resp, content = header.request(url, "GET", body='',
headers={"Content-Type": "application/xml",
"X-Auth-Token": self.token,
"ACCEPT": "application/xml"})
@@ -311,12 +330,12 @@ class get_global_groups_test(global_group_test):
self.assertEqual(401, int(resp['status']))
def test_get_global_groups_exp_token(self):
- h = httplib2.Http(".cache")
- respG, contentG = utils.create_global_group(self.global_group,
+ header = httplib2.Http(".cache")
+ resp_new, content_new = utils.create_global_group(self.global_group,
str(self.auth_token))
url = '%sgroups' % (utils.URL)
#test for Content-Type = application/json
- resp, content = h.request(url, "GET", body='{}',
+ resp, content = header.request(url, "GET", body='{}',
headers={"Content-Type": "application/json",
"X-Auth-Token": \
self.exp_auth_token})
@@ -327,12 +346,13 @@ class get_global_groups_test(global_group_test):
self.assertEqual(403, int(resp['status']))
def test_get_global_groups_exp_token_xml(self):
- h = httplib2.Http(".cache")
- respG, contentG = utils.create_global_group_xml(self.global_group,
- str(self.auth_token))
+ header = httplib2.Http(".cache")
+ resp_new, content_new = utils.create_global_group_xml(\
+ self.global_group,
+ str(self.auth_token))
url = '%sgroups' % (utils.URL)
#test for Content-Type = application/json
- resp, content = h.request(url, "GET", body='',
+ resp, content = header.request(url, "GET", body='',
headers={"Content-Type": "application/xml",
"X-Auth-Token": self.exp_auth_token,
"ACCEPT": "application/xml"})
@@ -343,15 +363,15 @@ class get_global_groups_test(global_group_test):
self.assertEqual(403, int(resp['status']))
-class get_global_group_test(global_group_test):
+class GetGlobalGroupTest(GlobalGroupTest):
def test_get_global_group(self):
- h = httplib2.Http(".cache")
- respG, contentG = utils.create_global_group(self.global_group,
+ header = httplib2.Http(".cache")
+ resp_new, content_new = utils.create_global_group(self.global_group,
str(self.auth_token))
url = '%sgroups/%s' % (utils.URL, self.global_group)
#test for Content-Type = application/json
- resp, content = h.request(url, "GET", body='{}',
+ resp, content = header.request(url, "GET", body='{}',
headers={"Content-Type": "application/json",
"X-Auth-Token": self.auth_token})
if int(resp['status']) == 500:
@@ -361,12 +381,13 @@ class get_global_group_test(global_group_test):
self.assertEqual(200, int(resp['status']))
def test_get_global_group_xml(self):
- h = httplib2.Http(".cache")
- respG, contentG = utils.create_global_group_xml(self.global_group,
- str(self.auth_token))
+ header = httplib2.Http(".cache")
+ resp_new, content_new = utils.create_global_group_xml(\
+ self.global_group,
+ str(self.auth_token))
url = '%sgroups/%s' % (utils.URL, self.global_group)
#test for Content-Type = application/json
- resp, content = h.request(url, "GET", body='',
+ resp, content = header.request(url, "GET", body='',
headers={"Content-Type": "application/xml",
"X-Auth-Token": self.auth_token,
"ACCEPT": "application/xml"})
@@ -377,12 +398,12 @@ class get_global_group_test(global_group_test):
self.assertEqual(200, int(resp['status']))
def test_get_global_group_bad(self):
- h = httplib2.Http(".cache")
- respG, contentG = utils.create_global_group(self.global_group,
+ header = httplib2.Http(".cache")
+ resp_new, content_new = utils.create_global_group(self.global_group,
str(self.auth_token))
url = '%sgroups/%s' % (utils.URL, 'global_group_bad')
#test for Content-Type = application/json
- resp, content = h.request(url, "GET", body='',
+ resp, content = header.request(url, "GET", body='',
headers={"Content-Type": "application/json",
"X-Auth-Token": self.auth_token})
if int(resp['status']) == 500:
@@ -392,12 +413,13 @@ class get_global_group_test(global_group_test):
self.assertEqual(404, int(resp['status']))
def test_get_global_group_bad_xml(self):
- h = httplib2.Http(".cache")
- respG, contentG = utils.create_global_group_xml(self.global_group,
- str(self.auth_token))
+ header = httplib2.Http(".cache")
+ resp_new, content_new = utils.create_global_group_xml(\
+ self.global_group,
+ str(self.auth_token))
url = '%sgroups/%s' % (utils.URL, 'global_group_bad')
#test for Content-Type = application/json
- resp, content = h.request(url, "GET", body='',
+ resp, content = header.request(url, "GET", body='',
headers={"Content-Type": "application/xml",
"X-Auth-Token": self.auth_token,
"ACCEPT": "application/xml"})
@@ -408,14 +430,14 @@ class get_global_group_test(global_group_test):
self.assertEqual(404, int(resp['status']))
-class update_global_groups_test(global_group_test):
+class UpdateGlobalGroupsTest(GlobalGroupTest):
def test_update_global_group(self):
- h = httplib2.Http(".cache")
- respG, contentG = utils.create_global_group(self.global_group,
+ header = httplib2.Http(".cache")
+ resp_new, content_new = utils.create_global_group(self.global_group,
str(self.auth_token))
url = '%sgroups/%s' % (utils.URL, self.global_group)
- resp, content = h.request(url, "PUT", body='{"group":{\
+ resp, content = header.request(url, "PUT", body='{"group":{\
"id" : "%s","description" :\
"A New description of the group..."}}' % self.global_group,
headers={"Content-Type": "application/json",
@@ -431,8 +453,8 @@ class update_global_groups_test(global_group_test):
str(body['group']['description']))
def test_update_global_group_xml(self):
- h = httplib2.Http(".cache")
- respG, contentG = utils.create_global_group(self.global_group,
+ header = httplib2.Http(".cache")
+ resp_new, content_new = utils.create_global_group(self.global_group,
str(self.auth_token))
url = '%sgroups/%s' % (utils.URL, self.global_group)
@@ -441,7 +463,7 @@ class update_global_groups_test(global_group_test):
id="%s"><description>A NEW description...</description> \
</group>' % (self.global_group)
#test for Content-Type = application/json
- resp, content = h.request(url, "PUT", body=data,
+ resp, content = header.request(url, "PUT", body=data,
headers={"Content-Type": "application/xml",
"X-Auth-Token": self.auth_token,
"ACCEPT": "application/xml"})
@@ -457,15 +479,15 @@ class update_global_groups_test(global_group_test):
self.assertEqual('A NEW description...', desc.text)
def test_update_global_group_bad(self):
- h = httplib2.Http(".cache")
- respG, contentG = utils.create_global_group(self.global_group,
+ header = httplib2.Http(".cache")
+ resp_new, content_new = utils.create_global_group(self.global_group,
str(self.auth_token))
url = '%sgroups/%s' % (utils.URL, self.global_group)
data = '{"group": { "description_bad": "A NEW description...", \
"id":"%s" }}'\
% (self.global_group)
#test for Content-Type = application/json
- resp, content = h.request(url, "PUT", body=data,
+ resp, content = header.request(url, "PUT", body=data,
headers={"Content-Type": "application/json",
"X-Auth-Token": self.auth_token})
if int(resp['status']) == 500:
@@ -475,16 +497,15 @@ class update_global_groups_test(global_group_test):
self.assertEqual(400, int(resp['status']))
def test_update_global_group_bad_xml(self):
- h = httplib2.Http(".cache")
- respG, contentG = utils.create_global_group_xml(self.global_group,
- str(self.auth_token))
+ header = httplib2.Http(".cache")
+ utils.create_global_group_xml(self.global_group, str(self.auth_token))
url = '%sgroups/%s' % (utils.URL, self.global_group)
data = '<?xml version="1.0" encoding="UTF-8"?> \
<group xmlns="http://docs.openstack.org/identity/api/v2.0" \
id="%s"><description_bad>A NEW description...</description> \
</group>' % (self.global_group)
#test for Content-Type = application/json
- resp, content = h.request(url, "PUT", body=data,
+ resp, content = header.request(url, "PUT", body=data,
headers={"Content-Type": "application/xml",
"X-Auth-Token": self.auth_token,
"ACCEPT": "application/xml"})
@@ -496,22 +517,20 @@ class update_global_groups_test(global_group_test):
self.assertEqual(400, int(resp['status']))
def test_update_global_group_not_found(self):
- h = httplib2.Http(".cache")
- respG, contentG = utils.create_global_group(self.global_group,
- str(self.auth_token))
+ header = httplib2.Http(".cache")
+ utils.create_global_group(self.global_group, str(self.auth_token))
url = '%sgroups/NonexistingID' % (utils.URL)
data = '{"group": { "description": "A NEW description...", \
"id":"NonexistingID"}}'
#test for Content-Type = application/json
- resp, content = h.request(url, "GET", body=data,
+ resp, content = header.request(url, "GET", body=data,
headers={"Content-Type": "application/json",
"X-Auth-Token": self.auth_token})
self.assertEqual(404, int(resp['status']))
def test_update_global_group_not_found_xml(self):
- h = httplib2.Http(".cache")
- resp, content = utils.create_tenant_xml(self.globaltenant,
- str(self.auth_token))
+ header = httplib2.Http(".cache")
+ utils.create_tenant_xml(self.globaltenant, str(self.auth_token))
url = '%sgroups/NonexistingID' % (utils.URL)
data = '<?xml version="1.0" encoding="UTF-8"?> \
<group xmlns="http://docs.openstack.org/identity/api/v2.0" \
@@ -519,7 +538,7 @@ class update_global_groups_test(global_group_test):
<description_bad>A NEW description...</description> \
</group>'
#test for Content-Type = application/json
- resp, content = h.request(url, "GET", body=data,
+ resp, content = header.request(url, "GET", body=data,
headers={"Content-Type": "application/xml",
"X-Auth-Token": self.auth_token,
"ACCEPT": "application/xml"})
@@ -530,7 +549,7 @@ class update_global_groups_test(global_group_test):
self.assertEqual(404, int(resp['status']))
-class delete_global_group_test(global_group_test):
+class DeleteGlobalGroupTest(GlobalGroupTest):
def test_delete_global_group_not_found(self):
resp, content = utils.delete_global_group("test_global_group_1",
@@ -543,61 +562,60 @@ class delete_global_group_test(global_group_test):
self.assertEqual(404, int(resp['status']))
def test_delete_global_group(self):
- resp, content = utils.create_tenant(self.globaltenant,
- str(self.auth_token))
- respG, contentG = utils.create_tenant_group('test_global_group_delete',
- self.globaltenant,
- str(self.auth_token))
- respG, contentG = utils.delete_global_group('test_global_group_delete',
- str(self.auth_token))
- resp, content = utils.delete_tenant(self.globaltenant,
- str(self.auth_token))
- self.assertEqual(204, int(respG['status']))
+ utils.create_tenant(self.globaltenant, str(self.auth_token))
+ utils.create_tenant_group('test_global_group_delete',
+ self.globaltenant, str(self.auth_token))
+ resp_new, content_new = utils.delete_global_group(\
+ 'test_global_group_delete',
+ str(self.auth_token))
+ resp = utils.delete_tenant(self.globaltenant, str(self.auth_token))
+ self.assertEqual(204, int(resp_new['status']))
def test_delete_global_group_xml(self):
- resp, content = utils.create_tenant_xml(self.globaltenant,
- str(self.auth_token))
- respG, contentG = utils.create_tenant_group_xml(\
- 'test_global_group_delete',
- self.globaltenant,
- str(self.auth_token))
- respG, contentG = utils.delete_global_group_xml(\
+
+ utils.create_tenant_xml(self.globaltenant, str(self.auth_token))
+
+ utils.create_tenant_group_xml('test_global_group_delete',
+ self.globaltenant, str(self.auth_token))
+
+ resp_new, content_new = utils.delete_global_group_xml(\
'test_global_group_delete',
str(self.auth_token))
- resp, content = utils.delete_tenant_xml(self.globaltenant,
- str(self.auth_token))
- self.assertEqual(204, int(resp['status']))
+
+ utils.delete_tenant_xml(self.globaltenant, str(self.auth_token))
+
+ self.assertEqual(204, int(resp_new['status']))
-class add_user_global_group_test(unittest.TestCase):
+class AddUserGlobalGroupTest(unittest.TestCase):
def setUp(self):
- self.token = utils.get_token('joeuser', 'secrete', 'token')
self.tenant = utils.get_global_tenant()
+ self.auth_token = utils.get_auth_token()
self.user = utils.get_user()
self.userdisabled = utils.get_userdisabled()
- self.auth_token = utils.get_auth_token()
self.exp_auth_token = utils.get_exp_auth_token()
self.disabled_token = utils.get_disabled_token()
self.global_group = 'test_global_group'
+ utils.create_tenant(self.tenant, str(self.auth_token))
+ utils.create_user(self.tenant, self.user, self.auth_token)
+ utils.add_user_json(self.tenant, self.user, self.auth_token)
+ self.token = utils.get_token(self.user, 'secrete', self.tenant,
+ 'token')
def tearDown(self):
- respG, contentG = utils.delete_user_global_group(self.global_group,
- self.user,
- str(self.auth_token))
+ utils.delete_user_global_group(self.global_group, self.user,
+ str(self.auth_token))
- respG, contentG = utils.delete_user(self.tenant, self.user,
- str(self.auth_token))
- resp, content = utils.delete_global_group(self.global_group,
- self.auth_token)
+ utils.delete_user(self.tenant, self.user, str(self.auth_token))
+ utils.delete_user(self.tenant, self.user, self.auth_token)
+ utils.delete_global_group(self.global_group, self.auth_token)
def test_add_user_global_group(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group(self.global_group,
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp_new, content_new = utils.add_user_global_group(self.global_group,
self.user,
str(self.auth_token))
@@ -605,16 +623,15 @@ class add_user_global_group_test(unittest.TestCase):
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- if int(respG['status']) not in (200, 201):
- self.fail('Failed due to %d' % int(respG['status']))
+ if int(resp_new['status']) not in (200, 201):
+ self.fail('Failed due to %d' % int(resp_new['status']))
def test_add_user_global_group_xml(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group_xml(self.global_group,
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp_new, content_new = utils.add_user_global_group_xml(\
+ self.global_group,
self.user,
str(self.auth_token))
@@ -622,19 +639,16 @@ class add_user_global_group_test(unittest.TestCase):
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- if int(respG['status']) not in (200, 201):
- self.fail('Failed due to %d' % int(respG['status']))
+ if int(resp_new['status']) not in (200, 201):
+ self.fail('Failed due to %d' % int(resp_new['status']))
def test_add_user_global_group_conflict(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group(self.global_group,
- self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group(self.global_group,
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ utils.add_user_global_group(self.global_group, self.user,
+ str(self.auth_token))
+ resp_new, content_new = utils.add_user_global_group(self.global_group,
self.user,
str(self.auth_token))
@@ -642,18 +656,16 @@ class add_user_global_group_test(unittest.TestCase):
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(409, int(respG['status']))
+ self.assertEqual(409, int(resp_new['status']))
def test_add_user_global_group_conflict_xml(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group_xml(self.global_group,
- self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group_xml(self.global_group,
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ utils.add_user_global_group_xml(self.global_group, self.user,
+ str(self.auth_token))
+ resp_new, content_new = utils.add_user_global_group_xml(\
+ self.global_group,
self.user,
str(self.auth_token))
@@ -661,31 +673,29 @@ class add_user_global_group_test(unittest.TestCase):
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(409, int(respG['status']))
+ self.assertEqual(409, int(resp_new['status']))
def test_add_user_global_group_unauthorized(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group(self.global_group,
+
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+
+ resp_new, content_new = utils.add_user_global_group(self.global_group,
self.user,
str(self.token))
-
if int(resp['status']) == 500:
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(401, int(respG['status']))
+ self.assertEqual(401, int(resp_new['status']))
def test_add_user_global_group_unauthorized_xml(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group_xml(self.global_group,
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp_new, content_new = utils.add_user_global_group_xml(\
+ self.global_group,
self.user,
str(self.token))
@@ -693,15 +703,14 @@ class add_user_global_group_test(unittest.TestCase):
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(401, int(respG['status']))
+ self.assertEqual(401, int(resp_new['status']))
def test_add_user_global_group_forbidden(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group(self.global_group,
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp_new, content_new = utils.add_user_global_group(\
+ self.global_group,
self.user,
str(self.disabled_token))
@@ -709,28 +718,26 @@ class add_user_global_group_test(unittest.TestCase):
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(403, int(respG['status']))
+ self.assertEqual(403, int(resp_new['status']))
def test_add_user_global_group_forbidden_xml(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group_xml(self.global_group,
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp_new, content_new = utils.add_user_global_group_xml(\
+ self.global_group,
self.user,
str(self.disabled_token))
if int(resp['status']) == 500:
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(403, int(respG['status']))
+ self.assertEqual(403, int(resp_new['status']))
-class get_users_tenant_group_test(unittest.TestCase):
+class GetUsersTenantGroupTest(unittest.TestCase):
def setUp(self):
- self.token = utils.get_token('joeuser', 'secrete', 'token')
self.tenant = utils.get_global_tenant()
self.user = utils.get_user()
self.userdisabled = utils.get_userdisabled()
@@ -738,164 +745,148 @@ class get_users_tenant_group_test(unittest.TestCase):
self.exp_auth_token = utils.get_exp_auth_token()
self.disabled_token = utils.get_disabled_token()
self.global_group = 'test_global_group'
+ utils.create_tenant(self.tenant, str(self.auth_token))
+ utils.create_user(self.tenant, self.user, self.auth_token)
+ utils.add_user_json(self.tenant, self.user, self.auth_token)
+ self.token = utils.get_token(self.user, 'secrete', self.tenant,
+ 'token')
def tearDown(self):
- respG, contentG = utils.delete_user_global_group(self.global_group,
- self.user,
- str(self.auth_token))
-
- respG, contentG = utils.delete_user(self.tenant, self.user,
- str(self.auth_token))
- resp, content = utils.delete_global_group(self.global_group,
- self.auth_token)
+ utils.delete_user_global_group(self.global_group, self.user,
+ str(self.auth_token))
+ utils.delete_user(self.tenant, self.user, str(self.auth_token))
+ utils.delete_global_group(self.global_group, self.auth_token)
def test_get_users_global_group(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group(self.global_group,
- self.user,
- str(self.auth_token))
- respG, contentG = utils.get_user_global_group(self.global_group,
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ utils.add_user_global_group(self.global_group, self.user,
+ str(self.auth_token))
+ resp_new, content_new = utils.get_user_global_group(\
+ self.global_group,
str(self.auth_token))
if int(resp['status']) == 500:
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(200, int(respG['status']))
+ self.assertEqual(200, int(resp_new['status']))
def test_get_users_global_group_xml(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group_xml(self.global_group,
- self.user,
- str(self.auth_token))
- respG, contentG = utils.get_user_global_group_xml(self.global_group,
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ utils.add_user_global_group_xml(self.global_group, self.user,
+ str(self.auth_token))
+ resp_new, content_new = utils.get_user_global_group_xml(\
+ self.global_group,
str(self.auth_token))
if int(resp['status']) == 500:
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(200, int(respG['status']))
+ self.assertEqual(200, int(resp_new['status']))
def test_get_users_global_group_unauthorized(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group(self.global_group,
- self.user,
- str(self.auth_token))
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ utils.add_user_global_group(self.global_group, self.user,
+ str(self.auth_token))
- respG, contentG = utils.get_user_global_group(self.global_group,
+ resp_new, content_new = utils.get_user_global_group(\
+ self.global_group,
str(self.token))
if int(resp['status']) == 500:
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(401, int(respG['status']))
+ self.assertEqual(401, int(resp_new['status']))
def test_get_users_global_group_unauthorized_xml(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group(self.global_group,
- self.user,
- str(self.auth_token))
- respG, contentG = utils.get_user_global_group_xml(self.global_group,
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ utils.add_user_global_group(self.global_group, self.user,
+ str(self.auth_token))
+ resp_new, content_new = utils.get_user_global_group_xml(\
+ self.global_group,
str(self.token))
if int(resp['status']) == 500:
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(401, int(respG['status']))
+ self.assertEqual(401, int(resp_new['status']))
def test_get_users_global_group_forbidden(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group(self.global_group,
- self.user,
- str(self.auth_token))
- respG, contentG = utils.get_user_global_group(self.global_group,
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ utils.add_user_global_group(self.global_group, self.user,
+ str(self.auth_token))
+ resp_new, content_new = utils.get_user_global_group(\
+ self.global_group,
str(self.disabled_token))
if int(resp['status']) == 500:
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(403, int(respG['status']))
+ self.assertEqual(403, int(resp_new['status']))
def test_get_users_global_group_forbidden_xml(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group(self.global_group,
- self.user,
- str(self.auth_token))
- respG, contentG = utils.get_user_global_group_xml(self.global_group,
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ utils.add_user_global_group(self.global_group, self.user,
+ str(self.auth_token))
+ resp_new, content_new = utils.get_user_global_group_xml(\
+ self.global_group,
str(self.disabled_token))
if int(resp['status']) == 500:
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(403, int(respG['status']))
+ self.assertEqual(403, int(resp_new['status']))
def test_get_users_global_group_expired(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group(self.global_group,
- self.user,
- str(self.auth_token))
- respG, contentG = utils.get_user_global_group(self.global_group,
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ utils.add_user_global_group(self.global_group, self.user,
+ str(self.auth_token))
+ resp_new, content_new = utils.get_user_global_group(\
+ self.global_group,
str(self.exp_auth_token))
if int(resp['status']) == 500:
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(403, int(respG['status']))
+ self.assertEqual(403, int(resp_new['status']))
def test_get_users_global_group_expired_xml(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group(self.global_group,
- self.user,
- str(self.auth_token))
- respG, contentG = utils.get_user_global_group_xml(self.global_group,
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ utils.add_user_global_group(self.global_group, self.user,
+ str(self.auth_token))
+ resp_new, content_new = utils.get_user_global_group_xml(\
+ self.global_group,
str(self.exp_auth_token))
if int(resp['status']) == 500:
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(403, int(respG['status']))
+ self.assertEqual(403, int(resp_new['status']))
-class delete_users_global_group_test(unittest.TestCase):
+class DeleteUsersGlobalGroupTest(unittest.TestCase):
def setUp(self):
- self.token = utils.get_token('joeuser', 'secrete', 'token')
self.tenant = utils.get_global_tenant()
self.user = utils.get_user()
self.userdisabled = utils.get_userdisabled()
@@ -903,28 +894,28 @@ class delete_users_global_group_test(unittest.TestCase):
self.exp_auth_token = utils.get_exp_auth_token()
self.disabled_token = utils.get_disabled_token()
self.global_group = 'test_global_group'
+ utils.create_tenant(self.tenant, str(self.auth_token))
+ utils.create_user(self.tenant, self.user, self.auth_token)
+ utils.add_user_json(self.tenant, self.user, self.auth_token)
+ self.token = utils.get_token(self.user, 'secrete', self.tenant,
+ 'token')
def tearDown(self):
- respG, contentG = utils.delete_user_global_group(self.global_group,
- self.user,
- str(self.auth_token))
+ utils.delete_user_global_group(self.global_group, self.user,
+ str(self.auth_token))
- respG, contentG = utils.delete_user(self.tenant, self.user,
- str(self.auth_token))
- resp, content = utils.delete_global_group(self.global_group,
- self.auth_token)
+ utils.delete_user(self.tenant, self.user, str(self.auth_token))
+ utils.delete_global_group(self.global_group, self.auth_token)
def test_delete_user_global_group(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group(self.global_group,
- self.user,
- str(self.auth_token))
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ utils.add_user_global_group(self.global_group, self.user,
+ str(self.auth_token))
- respG, contentG = utils.delete_user_global_group(self.global_group,
+ resp_new, content_new = utils.delete_user_global_group(\
+ self.global_group,
self.user,
str(self.auth_token))
@@ -932,68 +923,58 @@ class delete_users_global_group_test(unittest.TestCase):
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(204, int(respG['status']))
+ self.assertEqual(204, int(resp_new['status']))
def test_delete_user_global_group_xml(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group(self.global_group,
- self.user,
- str(self.auth_token))
- respG, contentG = utils.delete_user_global_group_xml(self.global_group,
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ utils.add_user_global_group(self.global_group, self.user,
+ str(self.auth_token))
+ resp_new, content_new = utils.delete_user_global_group_xml(\
+ self.global_group,
self.user,
str(self.auth_token))
if int(resp['status']) == 500:
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(204, int(respG['status']))
+ self.assertEqual(204, int(resp_new['status']))
def test_delete_user_global_group_notfound(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group(self.global_group,
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ utils.add_user_global_group(self.global_group, self.user,
+ str(self.disabled_token))
+ utils.delete_user_global_group(self.global_group, self.user,
+ str(self.auth_token))
+ resp_new, content_new = utils.delete_user_global_group(
+ self.global_group,
self.user,
- str(self.disabled_token))
- respG, contentG = utils.delete_user_global_group(self.global_group,
- self.user,
- str(self.auth_token))
- respG, contentG = utils.delete_user_global_group(self.global_group,
- self.user,
- str(self.auth_token))
+ str(self.auth_token))
if int(resp['status']) == 500:
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(404, int(respG['status']))
+ self.assertEqual(404, int(resp_new['status']))
def test_delete_user_global_group_notfound_xml(self):
- h = httplib2.Http(".cache")
resp, content = utils.create_global_group(self.global_group,
str(self.auth_token))
- respG, contentG = utils.create_user(self.tenant, self.user,
- str(self.auth_token))
- respG, contentG = utils.add_user_global_group(self.global_group,
- self.user,
- str(self.disabled_token))
- respG, contentG = utils.delete_user_global_group(self.global_group,
- self.user,
- str(self.auth_token))
- respG, contentG = utils.delete_user_global_group_xml(self.global_group,
- self.user,
- str(self.auth_token))
-
if int(resp['status']) == 500:
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- self.assertEqual(404, int(respG['status']))
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ utils.add_user_global_group(self.global_group, self.user,
+ str(self.disabled_token))
+ utils.delete_user_global_group(self.global_group, self.user,
+ str(self.auth_token))
+ resp_new, content_new = utils.delete_user_global_group_xml(\
+ self.global_group, self.user,
+ str(self.auth_token))
+ self.assertEqual(404, int(resp_new['status']))
if __name__ == '__main__':
unittest.main()
diff --git a/test/unit/test_keystone.py b/test/unit/test_keystone.py
index 9a6fe4df..3b17d9b2 100644
--- a/test/unit/test_keystone.py
+++ b/test/unit/test_keystone.py
@@ -1,12 +1,14 @@
import logging
+from lxml import etree
import os
import unittest
-from lxml import etree
+
MODULE_EXTENSIONS = set('.py'.split())
TEST_FILES = ['test_authentication.py', 'test_keystone.py', 'test_tenants.py',
- 'test_common.py', 'test_users.py','test_tenant_groups.py',
+ 'test_common.py', 'test_users.py', 'test_tenant_groups.py',
'test_token.py', 'test_version.py', 'test_groups.py']
+
def unit_test_extractor(tup, path, filenames):
"""Pull ``unittest.TestSuite``s from modules in path
if the path represents a valid Python package. Accumulate
diff --git a/test/unit/test_server.py b/test/unit/test_server.py
index a6b98892..294b1e54 100644
--- a/test/unit/test_server.py
+++ b/test/unit/test_server.py
@@ -65,7 +65,7 @@ class TestServer(unittest.TestCase):
self.assertTrue(server.get_auth_token(self.request),"Test Token")
def test_get_normalized_request_content_exception(self):
- self.assertRaises(fault.IDMFault,server.get_normalized_request_content,None,self.request)
+ self.assertRaises(fault.IdentityFault,server.get_normalized_request_content,None,self.request)
def test_get_normalized_request_content_xml(self):
self.request.environ["CONTENT_TYPE"]="application/xml"
diff --git a/test/unit/test_tenant_groups.py b/test/unit/test_tenant_groups.py
index d6b7ed20..54d9a585 100644
--- a/test/unit/test_tenant_groups.py
+++ b/test/unit/test_tenant_groups.py
@@ -1,20 +1,35 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+# Copyright (c) 2010-2011 OpenStack, LLC.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+import httplib2
+import json
+from lxml import etree
import os
import sys
-# Need to access identity module
sys.path.append(os.path.abspath(os.path.join(os.path.abspath(__file__),
'..', '..', '..', '..', 'keystone')))
import unittest
-import httplib2
-import json
-from lxml import etree
import test_common as util
-class tenant_group_test(unittest.TestCase):
+class TenantGroupTest(unittest.TestCase):
def setUp(self):
- self.token = util.get_token('joeuser', 'secrete', 'token')
self.tenant = util.get_tenant()
self.user = util.get_user()
self.userdisabled = util.get_userdisabled()
@@ -22,24 +37,31 @@ class tenant_group_test(unittest.TestCase):
self.exp_auth_token = util.get_exp_auth_token()
self.disabled_token = util.get_disabled_token()
self.tenant_group = 'test_tenant_group_add'
+ util.create_tenant(self.tenant, str(self.auth_token))
+ util.create_user(self.tenant, self.user, self.auth_token)
+ util.add_user_json(self.tenant, self.user, self.auth_token)
+ self.token = util.get_token(self.user, 'secrete', self.tenant,
+ 'token')
def tearDown(self):
- resp, content = util.delete_tenant_group(self.tenant_group,
+ util.delete_tenant_group(self.tenant_group,
self.tenant,
self.auth_token)
- resp, content = util.delete_tenant(self.tenant, self.auth_token)
+ util.delete_user(self.tenant, self.user,
+ str(self.auth_token))
+ util.delete_tenant(self.tenant, self.auth_token)
-class create_tenant_group_test(tenant_group_test):
+class CreateTenantGroupTest(TenantGroupTest):
def test_tenant_group_create(self):
- resp, content = util.delete_tenant(self.tenant, str(self.auth_token))
+ resp = util.delete_tenant(self.tenant, str(self.auth_token))
if int(resp['status']) == 500:
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- resp, content = util.create_tenant(self.tenant, str(self.auth_token))
+ util.create_tenant(self.tenant, str(self.auth_token))
resp, content = util.delete_tenant_group(self.tenant_group,
self.tenant,
str(self.auth_token))
@@ -51,7 +73,7 @@ class create_tenant_group_test(tenant_group_test):
self.fail('Failed due to %d' % int(resp['status']))
def test_tenant_group_create_xml(self):
- resp, content = util.delete_tenant_xml(self.tenant,
+ resp = util.delete_tenant_xml(self.tenant,
str(self.auth_token))
resp, content = util.create_tenant_xml(self.tenant,
str(self.auth_token))
@@ -312,7 +334,7 @@ class create_tenant_group_test(tenant_group_test):
self.assertEqual(404, int(resp['status']))
-class get_tenant_groups_test(tenant_group_test):
+class GetTenantGroupsTest(TenantGroupTest):
def test_get_tenant_groups(self):
header = httplib2.Http(".cache")
@@ -423,7 +445,7 @@ class get_tenant_groups_test(tenant_group_test):
self.assertEqual(403, int(resp['status']))
-class get_tenant_group_test(tenant_group_test):
+class GetTenantGroupTest(TenantGroupTest):
def test_get_tenant_group(self):
header = httplib2.Http(".cache")
@@ -539,7 +561,7 @@ class get_tenant_group_test(tenant_group_test):
self.assertEqual(404, int(resp['status']))
-class update_tenant_group_test(tenant_group_test):
+class UpdateTenantGroupTest(TenantGroupTest):
def test_update_tenant_group(self):
header = httplib2.Http(".cache")
@@ -572,7 +594,7 @@ class update_tenant_group_test(tenant_group_test):
def test_update_tenant_group_xml(self):
header = httplib2.Http(".cache")
- resp, content = util.delete_tenant(self.tenant, str(self.auth_token))
+ util.delete_tenant(self.tenant, str(self.auth_token))
resp, content = util.create_tenant(self.tenant, str(self.auth_token))
@@ -705,7 +727,7 @@ class update_tenant_group_test(tenant_group_test):
self.assertEqual(404, int(resp['status']))
-class delete_tenant_group_test(tenant_group_test):
+class DeleteTenantGroupTest(TenantGroupTest):
def test_delete_tenant_group_not_found(self):
resp, content = util.delete_tenant_group("test_tenant_delete111",
@@ -728,7 +750,7 @@ class delete_tenant_group_test(tenant_group_test):
resp, content = util.delete_tenant_group('test_tenant_group_delete',
"test_tenant_delete",
str(self.auth_token))
- resp, content = util.delete_tenant("test_tenant_delete",
+ resp = util.delete_tenant("test_tenant_delete",
str(self.auth_token))
self.assertEqual(204, int(resp['status']))
@@ -741,15 +763,14 @@ class delete_tenant_group_test(tenant_group_test):
resp, content = util.delete_tenant_group('test_tenant_group_delete',
"test_tenant_delete",
str(self.auth_token))
- resp, content = util.delete_tenant_xml("test_tenant_delete",
+ resp = util.delete_tenant_xml("test_tenant_delete",
str(self.auth_token))
self.assertEqual(204, int(resp['status']))
-class add_user_tenant_group_test(tenant_group_test):
+class AddUserTenantGroupTest(TenantGroupTest):
def setUp(self):
- self.token = util.get_token('joeuser', 'secrete', 'token')
self.tenant = 'test_tenant'
self.user = util.get_user()
self.userdisabled = util.get_userdisabled()
@@ -757,6 +778,11 @@ class add_user_tenant_group_test(tenant_group_test):
self.exp_auth_token = util.get_exp_auth_token()
self.disabled_token = util.get_disabled_token()
self.tenant_group = 'test_tenant_group_add'
+ util.create_tenant(self.tenant, str(self.auth_token))
+ util.create_user(self.tenant, self.user, self.auth_token)
+ util.add_user_json(self.tenant, self.user, self.auth_token)
+ self.token = util.get_token(self.user, 'secrete', self.tenant,
+ 'token')
def tearDown(self):
resp, content = util.delete_user_tenant_group(self.tenant,
@@ -764,12 +790,12 @@ class add_user_tenant_group_test(tenant_group_test):
self.user,
str(self.auth_token))
- resp, content = util.delete_user(self.tenant, self.user,
+ resp = util.delete_user(self.tenant, self.user,
str(self.auth_token))
resp, content = util.delete_tenant_group(self.tenant_group,
self.tenant,
self.auth_token)
- resp, content = util.delete_tenant(self.tenant, self.auth_token)
+ resp = util.delete_tenant(self.tenant, self.auth_token)
def test_add_user_tenant_group(self):
resp, content = util.create_tenant(self.tenant, str(self.auth_token))
@@ -928,10 +954,9 @@ class add_user_tenant_group_test(tenant_group_test):
self.assertEqual(403, int(resp['status']))
-class get_users_tenant_group_test(tenant_group_test):
+class GetUsersTenantGroupTest(TenantGroupTest):
def setUp(self):
- self.token = util.get_token('joeuser', 'secrete', 'token')
self.tenant = 'test_tenant'
self.user = util.get_user()
self.userdisabled = util.get_userdisabled()
@@ -939,6 +964,11 @@ class get_users_tenant_group_test(tenant_group_test):
self.exp_auth_token = util.get_exp_auth_token()
self.disabled_token = util.get_disabled_token()
self.tenant_group = 'test_tenant_group_add'
+ util.create_tenant(self.tenant, str(self.auth_token))
+ util.create_user(self.tenant, self.user, self.auth_token)
+ util.add_user_json(self.tenant, self.user, self.auth_token)
+ self.token = util.get_token(self.user, 'secrete', self.tenant,
+ 'token')
def tearDown(self):
resp, content = util.delete_user_tenant_group(self.tenant,
@@ -946,12 +976,12 @@ class get_users_tenant_group_test(tenant_group_test):
self.user,
str(self.auth_token))
- resp, content = util.delete_user(self.tenant, self.user,
+ resp = util.delete_user(self.tenant, self.user,
str(self.auth_token))
resp, content = util.delete_tenant_group(self.tenant_group,
self.tenant,
self.auth_token)
- resp, content = util.delete_tenant(self.tenant, self.auth_token)
+ util.delete_tenant(self.tenant, self.auth_token)
def test_get_users_tenant_group(self):
resp, content = util.create_tenant(self.tenant, str(self.auth_token))
@@ -963,9 +993,9 @@ class get_users_tenant_group_test(tenant_group_test):
self.tenant,
str(self.auth_token))
- resp, content = util.create_user(self.tenant, self.user,
+ util.create_user(self.tenant, self.user,
str(self.auth_token))
- resp, content = util.add_user_tenant_group(self.tenant,
+ util.add_user_tenant_group(self.tenant,
self.tenant_group,
self.user,
str(self.auth_token))
@@ -981,12 +1011,12 @@ class get_users_tenant_group_test(tenant_group_test):
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- resp, content = util.create_tenant_group(self.tenant_group,
+ util.create_tenant_group(self.tenant_group,
self.tenant,
str(self.auth_token))
- resp, content = util.create_user(self.tenant, self.user,
+ util.create_user(self.tenant, self.user,
str(self.auth_token))
- resp, content = util.add_user_tenant_group_xml(self.tenant,
+ util.add_user_tenant_group_xml(self.tenant,
self.tenant_group,
self.user,
str(self.auth_token))
@@ -1002,13 +1032,13 @@ class get_users_tenant_group_test(tenant_group_test):
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- resp, content = util.create_tenant_group(self.tenant_group,
+ util.create_tenant_group(self.tenant_group,
self.tenant,
str(self.auth_token))
- resp, content = util.create_user(self.tenant, self.user,
+ util.create_user(self.tenant, self.user,
str(self.auth_token))
- resp, content = util.add_user_tenant_group(self.tenant,
+ util.add_user_tenant_group(self.tenant,
self.tenant_group,
self.user,
self.auth_token)
@@ -1025,13 +1055,13 @@ class get_users_tenant_group_test(tenant_group_test):
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- resp, content = util.create_tenant_group(self.tenant_group,
+ util.create_tenant_group(self.tenant_group,
self.tenant,
str(self.auth_token))
- resp, content = util.create_user(self.tenant, self.user,
+ util.create_user(self.tenant, self.user,
str(self.auth_token))
- resp, content = util.add_user_tenant_group(self.tenant,
+ util.add_user_tenant_group(self.tenant,
self.tenant_group,
self.user, self.auth_token)
resp, content = util.get_user_tenant_group_xml(self.tenant,
@@ -1045,13 +1075,13 @@ class get_users_tenant_group_test(tenant_group_test):
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- resp, content = util.create_tenant_group(self.tenant_group,
+ util.create_tenant_group(self.tenant_group,
self.tenant,
str(self.auth_token))
- resp, content = util.create_user(self.tenant, self.user,
+ util.create_user(self.tenant, self.user,
str(self.auth_token))
- resp, content = util.add_user_tenant_group(self.tenant,
+ util.add_user_tenant_group(self.tenant,
self.tenant_group,
self.user, self.auth_token)
resp, content = util.get_user_tenant_group(self.tenant,
@@ -1066,13 +1096,13 @@ class get_users_tenant_group_test(tenant_group_test):
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- resp, content = util.create_tenant_group(self.tenant_group,
+ util.create_tenant_group(self.tenant_group,
self.tenant,
str(self.auth_token))
- resp, content = util.create_user(self.tenant, self.user,
+ util.create_user(self.tenant, self.user,
str(self.auth_token))
- resp, content = util.add_user_tenant_group(self.tenant,
+ util.add_user_tenant_group(self.tenant,
self.tenant_group,
self.user, self.auth_token)
resp, content = util.get_user_tenant_group_xml(self.tenant,
@@ -1087,13 +1117,13 @@ class get_users_tenant_group_test(tenant_group_test):
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- resp, content = util.create_tenant_group(self.tenant_group,
+ util.create_tenant_group(self.tenant_group,
self.tenant,
str(self.auth_token))
- resp, content = util.create_user(self.tenant, self.user,
+ util.create_user(self.tenant, self.user,
str(self.auth_token))
- resp, content = util.add_user_tenant_group(self.tenant,
+ util.add_user_tenant_group(self.tenant,
self.tenant_group,
self.user, self.auth_token)
resp, content = util.get_user_tenant_group(self.tenant,
@@ -1107,13 +1137,13 @@ class get_users_tenant_group_test(tenant_group_test):
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- resp, content = util.create_tenant_group(self.tenant_group,
+ util.create_tenant_group(self.tenant_group,
self.tenant,
str(self.auth_token))
- resp, content = util.create_user(self.tenant, self.user,
+ util.create_user(self.tenant, self.user,
str(self.auth_token))
- resp, content = util.add_user_tenant_group(self.tenant,
+ util.add_user_tenant_group(self.tenant,
self.tenant_group,
self.user, self.auth_token)
resp, content = util.get_user_tenant_group_xml(self.tenant,
@@ -1123,7 +1153,7 @@ class get_users_tenant_group_test(tenant_group_test):
self.assertEqual(403, int(resp['status']))
-class delete_users_tenant_group_test(tenant_group_test):
+class DeleteUsersTenantGroupTest(TenantGroupTest):
def test_delete_user_tenant_group(self):
resp, content = util.create_tenant(self.tenant, str(self.auth_token))
@@ -1131,12 +1161,12 @@ class delete_users_tenant_group_test(tenant_group_test):
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- resp, content = util.create_tenant_group(self.tenant_group,
+ util.create_tenant_group(self.tenant_group,
self.tenant,
str(self.auth_token))
- resp, content = util.create_user(self.tenant, self.user,
+ util.create_user(self.tenant, self.user,
str(self.auth_token))
- resp, content = util.add_user_tenant_group(self.tenant,
+ util.add_user_tenant_group(self.tenant,
self.tenant_group,
self.user,
str(self.auth_token))
@@ -1153,12 +1183,12 @@ class delete_users_tenant_group_test(tenant_group_test):
self.fail('Identity Fault')
elif int(resp['status']) == 503:
self.fail('Service Not Available')
- resp, content = util.create_tenant_group(self.tenant_group,
+ util.create_tenant_group(self.tenant_group,
self.tenant,
str(self.auth_token))
- resp, content = util.create_user(self.tenant, self.user,
+ util.create_user(self.tenant, self.user,
str(self.auth_token))
- resp, content = util.add_user_tenant_group_xml(self.tenant,
+ util.add_user_tenant_group_xml(self.tenant,
self.tenant_group,
self.user,
str(self.auth_token))
diff --git a/test/unit/test_tenants.py b/test/unit/test_tenants.py
index 1e5254ef..ec2a2569 100644
--- a/test/unit/test_tenants.py
+++ b/test/unit/test_tenants.py
@@ -1,34 +1,57 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+# Copyright (c) 2010-2011 OpenStack, LLC.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+import httplib2
+import json
+from lxml import etree
import os
import sys
-# Need to access identity module
sys.path.append(os.path.abspath(os.path.join(os.path.abspath(__file__),
'..', '..', '..', '..', 'keystone')))
import unittest
-import httplib2
-import json
-from lxml import etree
+
import test_common as utils
-class tenant_test(unittest.TestCase):
+class TenantTest(unittest.TestCase):
def setUp(self):
- self.token = utils.get_token('joeuser', 'secrete', 'token')
self.tenant = 'test_tenant'
+ self.auth_token = utils.get_auth_token()
self.user = utils.get_user()
self.userdisabled = utils.get_userdisabled()
- self.auth_token = utils.get_auth_token()
self.exp_auth_token = utils.get_exp_auth_token()
self.disabled_token = utils.get_disabled_token()
+ utils.create_tenant(self.tenant, str(self.auth_token))
+ utils.create_user(self.tenant, self.user, self.auth_token)
+ utils.add_user_json(self.tenant, self.user, self.auth_token)
+ self.token = utils.get_token(self.user, 'secrete', self.tenant,
+ 'token')
def tearDown(self):
- resp, content = utils.delete_tenant(self.tenant, self.auth_token)
+ utils.delete_user(self.tenant, self.user, self.auth_token)
+ utils.delete_tenant(self.tenant, self.auth_token)
-class create_tenant_test(tenant_test):
+class CreateTenantTest(TenantTest):
def test_tenant_create(self):
- resp, content = utils.delete_tenant(self.tenant, str(self.auth_token))
+ utils.delete_user(self.tenant, self.user, self.auth_token)
+ utils.delete_tenant(self.tenant, str(self.auth_token))
resp, content = utils.create_tenant(self.tenant, str(self.auth_token))
if int(resp['status']) == 500:
self.fail('Identity Fault')
@@ -40,7 +63,8 @@ class create_tenant_test(tenant_test):
self.fail('Failed due to %d' % int(resp['status']))
def test_tenant_create_xml(self):
- resp, content = utils.delete_tenant_xml(self.tenant,
+ utils.delete_user(self.tenant, self.user, self.auth_token)
+ utils.delete_tenant_xml(self.tenant,
str(self.auth_token))
resp, content = utils.create_tenant_xml(self.tenant,
str(self.auth_token))
@@ -302,7 +326,7 @@ class create_tenant_test(tenant_test):
self.assertEqual(404, int(resp['status']))
-class get_tenants_test(tenant_test):
+class GetTenantsTest(TenantTest):
def test_get_tenants(self):
header = httplib2.Http(".cache")
@@ -392,7 +416,7 @@ class get_tenants_test(tenant_test):
self.assertEqual(403, int(resp['status']))
-class get_tenant_test(tenant_test):
+class GetTenantTest(TenantTest):
def test_get_tenant(self):
header = httplib2.Http(".cache")
@@ -482,7 +506,7 @@ class get_tenant_test(tenant_test):
self.assertEqual(404, int(resp['status']))
-class update_tenant_test(tenant_test):
+class UpdateTenantTest(TenantTest):
def test_update_tenant(self):
header = httplib2.Http(".cache")
@@ -603,33 +627,33 @@ class update_tenant_test(tenant_test):
self.assertEqual(404, int(resp['status']))
-class delete_tenant_test(tenant_test):
+class DeleteTenantTest(TenantTest):
def test_delete_tenant_not_found(self):
#resp,content=utils.create_tenant("test_tenant_delete",
# str(self.auth_token))
- resp, content = utils.delete_tenant("test_tenant_delete111",
+ resp = utils.delete_tenant("test_tenant_delete111",
str(self.auth_token))
self.assertEqual(404, int(resp['status']))
def test_delete_tenant_not_found_xml(self):
#resp,content=utils.create_tenant("test_tenant_delete",
# str(self.auth_token))
- resp, content = utils.delete_tenant_xml("test_tenant_delete111",
+ resp = utils.delete_tenant_xml("test_tenant_delete111",
str(self.auth_token))
self.assertEqual(404, int(resp['status']))
def test_delete_tenant(self):
resp, content = utils.create_tenant("test_tenant_delete",
str(self.auth_token))
- resp, content = utils.delete_tenant("test_tenant_delete",
+ resp = utils.delete_tenant("test_tenant_delete",
str(self.auth_token))
self.assertEqual(204, int(resp['status']))
def test_delete_tenant_xml(self):
resp, content = utils.create_tenant_xml("test_tenant_delete",
str(self.auth_token))
- resp, content = utils.delete_tenant_xml("test_tenant_delete",
+ resp = utils.delete_tenant_xml("test_tenant_delete",
str(self.auth_token))
self.assertEqual(204, int(resp['status']))
diff --git a/test/unit/test_token.py b/test/unit/test_token.py
index c8b384a5..16818b4f 100644
--- a/test/unit/test_token.py
+++ b/test/unit/test_token.py
@@ -1,23 +1,41 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+# Copyright (c) 2010-2011 OpenStack, LLC.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+import httplib2
import os
import sys
-# Need to access identity module
sys.path.append(os.path.abspath(os.path.join(os.path.abspath(__file__),
'..', '..', '..', '..', 'keystone')))
import unittest
-import httplib2
+
import test_common as utils
-class validate_token(unittest.TestCase):
+class ValidateToken(unittest.TestCase):
def setUp(self):
- self.token = utils.get_token('joeuser', 'secrete', 'token')
self.tenant = utils.get_tenant()
- self.user = utils.get_user()
- self.userdisabled = utils.get_userdisabled()
+ self.token = utils.get_token('joeuser', 'secrete', self.tenant,
+ 'token')
+ #self.user = utils.get_user()
+ #self.userdisabled = utils.get_userdisabled()
self.auth_token = utils.get_auth_token()
self.exp_auth_token = utils.get_exp_auth_token()
- self.disabled_token = utils.get_disabled_token()
+ #self.disabled_token = utils.get_disabled_token()
def tearDown(self):
utils.delete_token(self.token, self.auth_token)
diff --git a/test/unit/test_users.py b/test/unit/test_users.py
index 0de24603..21811a3c 100644
--- a/test/unit/test_users.py
+++ b/test/unit/test_users.py
@@ -1,363 +1,359 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+# Copyright (c) 2010-2011 OpenStack, LLC.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+import httplib2
+import json
+from lxml import etree
import os
import sys
-# Need to access identity module
sys.path.append(os.path.abspath(os.path.join(os.path.abspath(__file__),
'..', '..', '..', '..', 'keystone')))
import unittest
-from webtest import TestApp
-import httplib2
-import json
-from lxml import etree
-
-from test_common import URL, get_token, get_tenant, get_user
-from test_common import get_userdisabled, get_auth_token
-from test_common import get_exp_auth_token, get_disabled_token
-from test_common import delete_token, content_type, get_token_xml
-from test_common import get_password, get_email, get_none_token
-from test_common import get_non_existing_token, delete_user, delete_user_xml
-from test_common import create_user, create_user_xml, handle_user_resp
+import test_common as utils
+from test_common import URL
-class user_test(unittest.TestCase):
+class UserTest(unittest.TestCase):
def setUp(self):
- self.token = get_token('joeuser', 'secrete', 'token')
- self.tenant = get_tenant()
- self.password = get_password()
- self.email = get_email()
- self.user = get_user()
- self.userdisabled = get_userdisabled()
- self.auth_token = get_auth_token()
- self.exp_auth_token = get_exp_auth_token()
- self.disabled_token = get_disabled_token()
- self.missing_token = get_none_token()
- self.invalid_token = get_non_existing_token()
+ self.tenant = utils.get_tenant()
+ self.password = utils.get_password()
+ self.email = utils.get_email()
+ self.user = utils.get_user()
+ self.userdisabled = utils.get_userdisabled()
+ self.auth_token = utils.get_auth_token()
+ self.exp_auth_token = utils.get_exp_auth_token()
+ self.disabled_token = utils.get_disabled_token()
+ self.missing_token = utils.get_none_token()
+ self.invalid_token = utils.get_non_existing_token()
+ utils.create_tenant(self.tenant, str(self.auth_token))
+ utils.add_user_json(self.tenant, self.user, self.auth_token)
+ self.token = utils.get_token(self.user, 'secrete', self.tenant,
+ 'token')
def tearDown(self):
-
- resp, content = delete_user(self.tenant, self.user,
- str(self.auth_token))
+ utils.delete_user(self.tenant, self.user, str(self.auth_token))
-class create_user_test(user_test):
+class CreateUserTest(UserTest):
def test_a_user_create_json(self):
- resp, content = create_user(self.tenant, self.user,
- str(self.auth_token))
+
+ resp = utils.delete_user(self.tenant, self.user, str(self.auth_token))
+
+ resp, content = utils.create_user(self.tenant, 'test_user1',
+ str(self.auth_token))
+ self.user = 'test_user1'
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(201, resp_val)
def test_a_user_create_xml(self):
- resp, content = delete_user_xml(self.tenant, self.user,
- str(self.auth_token))
- resp, content = create_user_xml(self.tenant, self.user,
- str(self.auth_token))
+ utils.delete_user_xml(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.create_user_xml(self.tenant, 'test_user1',
+ str(self.auth_token))
+ self.user = 'test_user1'
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
-
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(201, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
def test_a_user_create_json_disabled_tenant(self):
- resp, content = create_user('0000', self.user,
- str(self.auth_token))
+ resp, content = utils.create_user('0000', self.user,
+ str(self.auth_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(403, resp_val)
def test_a_user_create_json_disabled_tenant_xml(self):
- resp, content = create_user_xml('0000', self.user,
- str(self.auth_token))
+ resp, content = utils.create_user_xml('0000', self.user,
+ str(self.auth_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_a_user_again_json(self):
- resp, content = create_user(self.tenant, self.user,
+ def test_a_user_create_again_json(self):
+ resp, content = utils.create_user(self.tenant, self.user,
str(self.auth_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
- resp, content = create_user(self.tenant, self.user,
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
+ resp, content = utils.create_user(self.tenant, self.user,
str(self.auth_token))
self.assertEqual(409, int(resp['status']))
- def test_a_user_again_xml(self):
- resp, content = create_user_xml(self.tenant, self.user,
+ def test_a_user_create_again_xml(self):
+ utils.create_user_xml(self.tenant, self.user,
str(self.auth_token))
- resp, content = create_user_xml(self.tenant, self.user,
+ resp, content = utils.create_user_xml(self.tenant, self.user,
str(self.auth_token))
content = etree.fromstring(content)
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
+ self.assertEqual(409, int(resp['status']))
+ self.assertEqual('application/xml', utils.content_type(resp))
+
+ def test_a_user_create_email_conflict(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token),
+ self.email)
+ resp, content = utils.create_user(self.tenant, self.user,
+ str(self.auth_token),
+ self.email)
self.assertEqual(409, int(resp['status']))
- self.assertEqual('application/xml', content_type(resp))
+
+ def test_a_user_create_email_conflict_xml(self):
+ utils.create_user_xml(self.tenant,
+ self.user,
+ str(self.auth_token),
+ self.email)
+ resp, content = utils.create_user_xml(self.tenant, self.user,
+ str(self.auth_token),
+ self.email)
+ content = etree.fromstring(content)
+ resp_val = int(resp['status'])
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
+ self.assertEqual(409, int(resp['status']))
+ self.assertEqual('application/xml', utils.content_type(resp))
def test_a_user_create_expired_token(self):
- resp, content = create_user(self.tenant, self.user,
+ resp, content = utils.create_user(self.tenant, self.user,
str(self.exp_auth_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(403, int(resp['status']))
def test_a_user_create_expired_token_xml(self):
- resp, content = create_user_xml(self.tenant, self.user,
- str(self.exp_auth_token))
+ resp, content = utils.create_user_xml(self.tenant, self.user,
+ str(self.exp_auth_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(403, int(resp['status']))
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
def test_a_user_create_disabled_token(self):
- resp, content = create_user(self.tenant, self.user,
+ resp, content = utils.create_user(self.tenant, self.user,
str(self.disabled_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(403, int(resp['status']))
def test_a_user_create_disabled_token_xml(self):
- resp, content = create_user_xml(self.tenant, self.user,
- str(self.disabled_token))
+ resp, content = utils.create_user_xml(self.tenant, self.user,
+ str(self.disabled_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(403, int(resp['status']))
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
def test_a_user_create_missing_token(self):
- resp, content = create_user(self.tenant, self.user,
+ resp, content = utils.create_user(self.tenant, self.user,
str(self.missing_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(401, int(resp['status']))
def test_a_user_create_missing_token_xml(self):
- resp, content = create_user_xml(self.tenant, self.user,
- str(self.missing_token))
+ resp, content = utils.create_user_xml(self.tenant, self.user,
+ str(self.missing_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(401, int(resp['status']))
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
def test_a_user_create_invalid_token(self):
- resp, content = create_user(self.tenant, self.user,
+ resp, content = utils.create_user(self.tenant, self.user,
str(self.invalid_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(404, int(resp['status']))
def test_a_user_create_invalid_token_xml(self):
- resp, content = create_user_xml(self.tenant, self.user,
+ resp, content = utils.create_user_xml(self.tenant, self.user,
str(self.invalid_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(404, int(resp['status']))
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
-class get_user_test(user_test):
+class GetUserTest(UserTest):
- def test_a_user_get_json(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.tenant, self.user,
- str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.auth_token})
+ def test_a_user_get(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_get_json(self.tenant, self.user,
+ str(self.auth_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(200, resp_val)
def test_a_user_get_xml(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.tenant, self.user,
- str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.auth_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_get_xml(self.tenant, self.user,
+ str(self.auth_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(200, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
def test_a_user_get_expired_token(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.user, self.tenant,
- str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- #test for Content-Type = application/json
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.exp_auth_token})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_get_json(self.tenant, self.user,
+ str(self.exp_auth_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(403, resp_val)
def test_a_user_get_expired_token_xml(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.user, self.tenant,
- str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- #test for Content-Type = application/json
- resp, content = header.request(url, "GET", body='',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.exp_auth_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_get_xml(self.tenant, self.user,
+ str(self.exp_auth_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
def test_a_user_get_disabled_token(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.user, self.tenant,
- str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- #test for Content-Type = application/json
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.disabled_token})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_get_json(self.tenant,
+ self.user,
+ str(self.disabled_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(403, resp_val)
def test_a_user_get_disabled_token_xml(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.user, self.tenant,
- str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- #test for Content-Type = application/json
- resp, content = header.request(url, "GET", body='',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.disabled_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_get_xml(self.tenant,
+ self.user,
+ str(self.disabled_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
def test_a_user_get_missing_token(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.user, self.tenant,
- str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- #test for Content-Type = application/json
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.missing_token})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_get_json(self.tenant,
+ self.user,
+ str(self.missing_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(401, resp_val)
def test_a_user_get_missing_token_xml(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.user, self.tenant,
- str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- #test for Content-Type = application/json
- resp, content = header.request(url, "GET", body='',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.missing_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_get_xml(self.tenant, self.user,
+ str(self.missing_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(401, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
def test_a_user_get_invalid_token(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.user, self.tenant,
- str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- #test for Content-Type = application/json
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.invalid_token})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_get_json(self.tenant, self.user,
+ str(self.invalid_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(404, resp_val)
def test_a_user_get_invalid_token_xml(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.user, self.tenant,
- str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- #test for Content-Type = application/json
- resp, content = header.request(url, "GET", body='',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.invalid_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_get_xml(self.tenant, self.user,
+ str(self.invalid_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(404, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
def test_a_user_get_disabled_user(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s' % (URL, self.tenant,
- self.userdisabled)
- #test for Content-Type = application/json
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.auth_token})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_get_json(self.tenant,
+ self.userdisabled,
+ str(self.auth_token))
resp_val = int(resp['status'])
-
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(403, resp_val)
def test_a_user_get_disabled_user_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.userdisabled)
-
- resp, content = header.request(url, "GET", body='',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.auth_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_get_xml(self.tenant, self.userdisabled,
+ str(self.auth_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
def test_a_user_get_disabled_tenant(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s' % (URL, '0000', self.userdisabled)
-
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.auth_token})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_get_json('0000', self.user,
+ str(self.auth_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(403, resp_val)
def test_a_user_get_disabled_tenant_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s' % (URL, '0000', self.userdisabled)
- #test for Content-Type = application/json
- resp, content = header.request(url, "GET", body='',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.auth_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_get_xml('0000', self.user,
+ str(self.auth_token))
resp_val = int(resp['status'])
- handle_user_resp(self, content, resp_val, content_type(resp))
+ utils.handle_user_resp(self, content, resp_val,
+ utils.content_type(resp))
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml',
+ utils.content_type(resp))
-class delete_user_test(user_test):
+class DeleteUserTest(UserTest):
- def test_a_user_delete_json(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.tenant, self.user,
- str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- #test for Content-Type = application/json
- resp, content = header.request(url, "DELETE", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.auth_token})
+ def test_a_user_delete(self):
+ utils.create_user(self.tenant, self.user,
+ str(self.auth_token))
+ resp = utils.delete_user(self.tenant, self.user,
+ str(self.auth_token))
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
@@ -366,14 +362,10 @@ class delete_user_test(user_test):
self.assertEqual(204, resp_val)
def test_a_user_delete_xml(self):
- header = httplib2.Http(".cache")
- resp, content = create_user_xml(self.tenant, self.user,
- str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- resp, content = header.request(url, "DELETE", body='{}',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.auth_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user,
+ str(self.auth_token))
+ resp = utils.delete_user_xml(self.tenant, self.user,
+ str(self.auth_token))
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
@@ -382,14 +374,10 @@ class delete_user_test(user_test):
self.assertEqual(204, resp_val)
def test_a_user_delete_expired_token(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.user, self.tenant,
- str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- #test for Content-Type = application/json
- resp, content = header.request(url, "DELETE", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.exp_auth_token})
+ utils.create_user(self.tenant, self.user,
+ str(self.auth_token))
+ resp = utils.delete_user(self.tenant, self.user,
+ str(self.exp_auth_token))
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
@@ -398,32 +386,23 @@ class delete_user_test(user_test):
self.assertEqual(403, resp_val)
def test_a_user_delete_expired_token_xml(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.user, self.tenant,
+ utils.create_user(self.tenant, self.user,
str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- #test for Content-Type = application/json
- resp, content = header.request(url, "DELETE", body='',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.exp_auth_token,
- "ACCEPT": "application/xml"})
+ resp = utils.delete_user_xml(self.tenant, self.user,
+ str(self.exp_auth_token))
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
def test_a_user_delete_missing_token(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.user, self.tenant,
+ utils.create_user(self.tenant, self.user,
str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- #test for Content-Type = application/json
- resp, content = header.request(url, "DELETE", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.missing_token})
+ resp = utils.delete_user(self.tenant, self.user,
+ str(self.missing_token))
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
@@ -432,32 +411,23 @@ class delete_user_test(user_test):
self.assertEqual(401, resp_val)
def test_a_user_delete_missing_token_xml(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.user, self.tenant,
+ utils.create_user(self.tenant, self.user,
str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- #test for Content-Type = application/json
- resp, content = header.request(url, "DELETE", body='',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.missing_token,
- "ACCEPT": "application/xml"})
+ resp = utils.delete_user_xml(self.tenant, self.user,
+ str(self.missing_token))
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(401, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
def test_a_user_delete_invalid_token(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.user, self.tenant,
+ utils.create_user(self.tenant, self.user,
str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- #test for Content-Type = application/json
- resp, content = header.request(url, "DELETE", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.invalid_token})
+ resp = utils.delete_user(self.tenant, self.user,
+ str(self.invalid_token))
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
@@ -466,32 +436,24 @@ class delete_user_test(user_test):
self.assertEqual(404, resp_val)
def test_a_user_delete_invalid_token_xml(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.user, self.tenant,
+ utils.create_user(self.tenant, self.user,
str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- #test for Content-Type = application/json
- resp, content = header.request(url, "DELETE", body='',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.invalid_token,
- "ACCEPT": "application/xml"})
+ resp = utils.delete_user_xml(self.tenant, self.user,
+ str(self.invalid_token))
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(404, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
def test_a_user_delete_disabled_tenant(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s' % (URL, '0000', self.userdisabled)
- #test for Content-Type = application/json
- resp, content = header.request(url, "DELETE", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.auth_token})
+ utils.create_user(self.tenant, self.user,
+ str(self.auth_token))
+ resp = utils.delete_user("0000", self.user,
+ str(self.auth_token))
resp_val = int(resp['status'])
-
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
@@ -499,31 +461,23 @@ class delete_user_test(user_test):
self.assertEqual(403, resp_val)
def test_a_user_delete_disabled_tenant_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s' % (URL, '0000', self.userdisabled)
- #test for Content-Type = application/json
- resp, content = header.request(url, "DELETE", body='',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.auth_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user,
+ str(self.auth_token))
+ resp = utils.delete_user_xml("0000", self.user,
+ str(self.auth_token))
resp_val = int(resp['status'])
-
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
-class get_users_test(user_test):
+class GetUsersTest(UserTest):
- def test_users_get_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users' % (URL, self.tenant)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.auth_token})
+ def test_users_get(self):
+ resp, content = utils.users_get_json(self.tenant, self.auth_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
@@ -532,26 +486,17 @@ class get_users_test(user_test):
self.assertEqual(200, resp_val)
def test_users_get_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users' % (URL, self.tenant)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.auth_token,
- "ACCEPT": "application/xml"})
+ resp, content = utils.users_get_xml(self.tenant, self.auth_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(200, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_users_get_expired_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users' % (URL, self.tenant)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.exp_auth_token})
+ def test_users_get_expired_token(self):
+ resp, content = utils.users_get_json(self.tenant, self.exp_auth_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
@@ -560,26 +505,17 @@ class get_users_test(user_test):
self.assertEqual(403, resp_val)
def test_users_get_expired_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users' % (URL, self.tenant)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.exp_auth_token,
- "ACCEPT": "application/xml"})
+ resp, content = utils.users_get_xml(self.tenant, self.exp_auth_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_users_get_disabled_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users' % (URL, self.tenant)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.disabled_token})
+ def test_users_get_disabled_token(self):
+ resp, content = utils.users_get_json(self.tenant, self.disabled_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
@@ -588,26 +524,17 @@ class get_users_test(user_test):
self.assertEqual(403, resp_val)
def test_users_get_disabled_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users' % (URL, self.tenant)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.disabled_token,
- "ACCEPT": "application/xml"})
+ resp, content = utils.users_get_xml(self.tenant, self.disabled_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_users_get_missing_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users' % (URL, self.tenant)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.missing_token})
+ def test_users_get_missing_token(self):
+ resp, content = utils.users_get_json(self.tenant, self.missing_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
@@ -616,26 +543,17 @@ class get_users_test(user_test):
self.assertEqual(401, resp_val)
def test_users_get_missing_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users' % (URL, self.tenant)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.missing_token,
- "ACCEPT": "application/xml"})
+ resp, content = utils.users_get_xml(self.tenant, self.missing_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(401, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_users_get_invalid_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users' % (URL, self.tenant)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.invalid_token})
+ def test_users_get_invalid_token(self):
+ resp, content = utils.users_get_json(self.tenant, self.invalid_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
@@ -644,58 +562,41 @@ class get_users_test(user_test):
self.assertEqual(404, resp_val)
def test_users_get_invalid_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users' % (URL, self.tenant)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.invalid_token,
- "ACCEPT": "application/xml"})
+ resp, content = utils.users_get_xml(self.tenant, self.invalid_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(404, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_users_get_disabled_tenant_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users' % (URL, "0000")
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.auth_token})
+ def test_users_get_disabled_tenant(self):
+ resp, content = utils.users_get_json('0000', self.auth_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
-
self.assertEqual(403, resp_val)
def test_users_get_disabled_tenant_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users' % (URL, "0000")
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.auth_token,
- "ACCEPT": "application/xml"})
+ resp, content = utils.users_get_xml('0000', self.auth_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
-class get_users_group_test(user_test):
+class GetUsersGroupTest(UserTest):
- def test_users_group_get_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/groups' % (URL, self.tenant, self.user)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.auth_token})
+ def test_users_group_get(self):
+ resp, content = utils.users_group_get_json(self.tenant,
+ self.user,
+ self.auth_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
@@ -704,26 +605,21 @@ class get_users_group_test(user_test):
self.assertEqual(200, resp_val)
def test_users_group_get_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/groups' % (URL, self.tenant, self.user)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.auth_token,
- "ACCEPT": "application/xml"})
+ resp, content = utils.users_group_get_xml(self.tenant,
+ self.user,
+ self.auth_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(200, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_users_group_get_expired_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/groups' % (URL, self.tenant, self.user)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.exp_auth_token})
+ def test_users_group_get_expired_token(self):
+ resp, content = utils.users_group_get_json(self.tenant,
+ self.user,
+ self.exp_auth_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
@@ -732,26 +628,21 @@ class get_users_group_test(user_test):
self.assertEqual(403, resp_val)
def test_users_group_get_expired_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/groups' % (URL, self.tenant, self.user)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.exp_auth_token,
- "ACCEPT": "application/xml"})
+ resp, content = utils.users_group_get_xml(self.tenant,
+ self.user,
+ self.exp_auth_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_users_group_get_disabled_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/groups' % (URL, self.tenant, self.user)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.disabled_token})
+ def test_users_group_get_disabled_token(self):
+ resp, content = utils.users_group_get_json(self.tenant,
+ self.user,
+ self.disabled_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
@@ -760,26 +651,21 @@ class get_users_group_test(user_test):
self.assertEqual(403, resp_val)
def test_users_group_get_disabled_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/groups' % (URL, self.tenant, self.user)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.disabled_token,
- "ACCEPT": "application/xml"})
+ resp, content = utils.users_group_get_xml(self.tenant,
+ self.user,
+ self.disabled_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_users_group_get_missing_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/groups' % (URL, self.tenant, self.user)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.missing_token})
+ def test_users_group_get_missing_token(self):
+ resp, content = utils.users_group_get_json(self.tenant,
+ self.user,
+ self.missing_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
@@ -788,26 +674,21 @@ class get_users_group_test(user_test):
self.assertEqual(401, resp_val)
def test_users_group_get_missing_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/groups' % (URL, self.tenant, self.user)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.missing_token,
- "ACCEPT": "application/xml"})
+ resp, content = utils.users_group_get_xml(self.tenant,
+ self.user,
+ self.missing_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(401, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_users_group_get_invalid_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/groups' % (URL, self.tenant, self.user)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.invalid_token})
+ def test_users_group_get_invalid_token(self):
+ resp, content = utils.users_group_get_json(self.tenant,
+ self.user,
+ self.invalid_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
@@ -816,106 +697,79 @@ class get_users_group_test(user_test):
self.assertEqual(404, resp_val)
def test_users_group_get_invalid_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/groups' % (URL, self.tenant, self.user)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.invalid_token,
- "ACCEPT": "application/xml"})
+ resp, content = utils.users_group_get_xml(self.tenant,
+ self.user,
+ self.invalid_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(404, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_users_group_get_disabled_tenant_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/groups' % (URL, "0000", self.user)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.auth_token})
+ def test_users_group_get_disabled_tenant(self):
+ resp, content = utils.users_group_get_json('0000',
+ self.user,
+ self.auth_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
-
self.assertEqual(403, resp_val)
def test_users_group_get_disabled_tenant_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/groups' % (URL, "0000", self.user)
- resp, content = header.request(url, "GET", body='{}',
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.auth_token,
- "ACCEPT": "application/xml"})
+ resp, content = utils.users_group_get_xml('0000',
+ self.user,
+ self.auth_token)
resp_val = int(resp['status'])
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
-class update_user_test(user_test):
+class UpdateUserTest(UserTest):
- def test_user_update_json(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.tenant, self.user,
- str(self.auth_token))
-
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
-
- data = '{"user": { "email": "updatedjoeuser@rackspace.com"}}'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.auth_token})
+ def test_user_update(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_update_json(self.tenant, self.user,
+ self.auth_token)
resp_val = int(resp['status'])
-
content = json.loads(content)
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
- delete_user(self.tenant, self.user, str(self.auth_token))
+ utils.delete_user(self.tenant, self.user, str(self.auth_token))
self.assertEqual(200, resp_val)
- self.assertEqual('updatedjoeuser@rackspace.com', \
- content['user']['email'])
+ self.assertEqual('updatedjoeuser@rackspace.com',
+ content['user']['email'])
def test_user_update_xml(self):
- header = httplib2.Http(".cache")
- resp, content = create_user_xml(self.tenant, self.user,
- str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- data = '<?xml version="1.0" encoding="UTF-8"?> \
- <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
- email="updatedjoeuser@rackspace.com" />'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.auth_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_update_xml(self.tenant, self.user,
+ self.auth_token)
resp_val = int(resp['status'])
-
content = etree.fromstring(content)
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
- delete_user(self.tenant, self.user, str(self.auth_token))
+ utils.delete_user(self.tenant, self.user, str(self.auth_token))
self.assertEqual(200, resp_val)
- self.assertEqual('updatedjoeuser@rackspace.com', content.get("email"))
- self.assertEqual('application/xml', content_type(resp))
-
- def test_user_update_user_disabled_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.userdisabled)
- data = '{"user": { "email": "updatedjoeuser@rackspace.com"}}'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.auth_token})
+ self.assertEqual('updatedjoeuser@rackspace.com',
+ content.get("email"))
+ self.assertEqual('application/xml', utils.content_type(resp))
+
+ def test_user_update_user_disabled(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_update_json(self.tenant,
+ self.userdisabled,
+ self.auth_token)
resp_val = int(resp['status'])
content = json.loads(content)
if resp_val == 500:
@@ -925,15 +779,10 @@ class update_user_test(user_test):
self.assertEqual(403, resp_val)
def test_user_update_user_disabled_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.userdisabled)
- data = '<?xml version="1.0" encoding="UTF-8"?> \
- <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
- email="updatedjoeuser@rackspace.com" />'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.auth_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_update_xml(self.tenant,
+ self.userdisabled,
+ self.auth_token)
resp_val = int(resp['status'])
content = etree.fromstring(content)
if resp_val == 500:
@@ -941,17 +790,14 @@ class update_user_test(user_test):
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_user_update_email_conflict_json(self):
- header = httplib2.Http(".cache")
- resp, content = create_user_xml(self.tenant, self.user,
- str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- data = '{"user": { "email": "joe@rackspace.com"}}'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.auth_token})
+ def test_user_update_email_conflict(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_update_json(self.tenant,
+ self.user,
+ self.auth_token,
+ "joe@rackspace.com")
resp_val = int(resp['status'])
content = json.loads(content)
if resp_val == 500:
@@ -961,17 +807,11 @@ class update_user_test(user_test):
self.assertEqual(409, resp_val)
def test_user_update_email_conflict_xml(self):
- header = httplib2.Http(".cache")
- resp, content = create_user_xml(self.tenant, self.user,
- str(self.auth_token))
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- data = '<?xml version="1.0" encoding="UTF-8"?> \
- <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
- email="joe@rackspace.com" />'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.auth_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_update_xml(self.tenant,
+ self.user,
+ self.auth_token,
+ "joe@rackspace.com")
resp_val = int(resp['status'])
content = etree.fromstring(content)
if resp_val == 500:
@@ -979,15 +819,15 @@ class update_user_test(user_test):
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(409, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
def test_user_update_bad_request_json(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.tenant, self.user,
+ h = httplib2.Http(".cache")
+ resp, content = utils.create_user(self.tenant, self.user,
str(self.auth_token))
url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
data = '{"user_bad": { "bad": "updatedjoeuser@rackspace.com"}}'
- resp, content = header.request(url, "PUT", body=data,
+ resp, content = h.request(url, "PUT", body=data,
headers={"Content-Type": "application/json",
"X-Auth-Token": self.auth_token})
resp_val = int(resp['status'])
@@ -996,18 +836,18 @@ class update_user_test(user_test):
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
- delete_user(self.tenant, self.user, str(self.auth_token))
+ utils.delete_user(self.tenant, self.user, str(self.auth_token))
self.assertEqual(400, resp_val)
def test_user_update_bad_request_xml(self):
- header = httplib2.Http(".cache")
- resp, content = create_user_xml(self.tenant, self.user,
+ h = httplib2.Http(".cache")
+ resp, content = utils.create_user_xml(self.tenant, self.user,
str(self.auth_token))
url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
data = '<?xml version="1.0" encoding="UTF-8"?> \
user xmlns="http://docs.openstack.org/identity/api/v2.0" \
email="updatedjoeuser@rackspace.com" />'
- resp, content = header.request(url, "PUT", body=data,
+ resp, content = h.request(url, "PUT", body=data,
headers={"Content-Type": "application/xml",
"X-Auth-Token": self.auth_token,
"ACCEPT": "application/xml"})
@@ -1017,17 +857,15 @@ class update_user_test(user_test):
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
- delete_user(self.tenant, self.user, str(self.auth_token))
+ utils.delete_user(self.tenant, self.user, str(self.auth_token))
self.assertEqual(400, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_user_update_expired_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- data = '{"user": { "email": "updatedjoeuser@rackspace.com"}}'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.exp_auth_token})
+ def test_user_update_expired_token(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_update_json(self.tenant,
+ self.user,
+ self.exp_auth_token)
resp_val = int(resp['status'])
content = json.loads(content)
if resp_val == 500:
@@ -1037,15 +875,10 @@ class update_user_test(user_test):
self.assertEqual(403, resp_val)
def test_user_update_expired_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- data = '<?xml version="1.0" encoding="UTF-8"?> \
- <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
- email="updatedjoeuser@rackspace.com" />'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.exp_auth_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_update_xml(self.tenant,
+ self.user,
+ self.exp_auth_token)
resp_val = int(resp['status'])
content = etree.fromstring(content)
if resp_val == 500:
@@ -1053,15 +886,13 @@ class update_user_test(user_test):
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_user_update_disabled_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- data = '{"user": { "email": "updatedjoeuser@rackspace.com"}}'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.disabled_token})
+ def test_user_update_disabled_token(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_update_json(self.tenant,
+ self.user,
+ self.disabled_token)
resp_val = int(resp['status'])
content = json.loads(content)
if resp_val == 500:
@@ -1071,15 +902,10 @@ class update_user_test(user_test):
self.assertEqual(403, resp_val)
def test_user_update_disabled_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- data = '<?xml version="1.0" encoding="UTF-8"?> \
- <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
- email="updatedjoeuser@rackspace.com" />'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.disabled_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_update_xml(self.tenant,
+ self.user,
+ self.disabled_token)
resp_val = int(resp['status'])
content = etree.fromstring(content)
if resp_val == 500:
@@ -1087,18 +913,14 @@ class update_user_test(user_test):
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
-
- def test_user_update_invalid_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
+ self.assertEqual('application/xml', utils.content_type(resp))
- data = '{"user": { "email": "updatedjoeuser@rackspace.com"}}'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.invalid_token})
+ def test_user_update_invalid_token(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_update_json(self.tenant,
+ self.user,
+ self.invalid_token)
resp_val = int(resp['status'])
-
content = json.loads(content)
if resp_val == 500:
self.fail('Identity Fault')
@@ -1107,15 +929,10 @@ class update_user_test(user_test):
self.assertEqual(404, resp_val)
def test_user_update_invalid_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- data = '<?xml version="1.0" encoding="UTF-8"?> \
- <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
- email="updatedjoeuser@rackspace.com" />'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.invalid_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_update_xml(self.tenant,
+ self.user,
+ self.invalid_token)
resp_val = int(resp['status'])
content = etree.fromstring(content)
if resp_val == 500:
@@ -1123,15 +940,13 @@ class update_user_test(user_test):
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(404, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_user_update_missing_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- data = '{"user": { "email": "updatedjoeuser@rackspace.com"}}'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.missing_token})
+ def test_user_update_missing_token(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_update_json(self.tenant,
+ self.user,
+ self.missing_token)
resp_val = int(resp['status'])
content = json.loads(content)
if resp_val == 500:
@@ -1141,15 +956,10 @@ class update_user_test(user_test):
self.assertEqual(401, resp_val)
def test_user_update_missing_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.user)
- data = '<?xml version="1.0" encoding="UTF-8"?> \
- <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
- email="updatedjoeuser@rackspace.com" />'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.missing_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_update_xml(self.tenant,
+ self.user,
+ self.missing_token)
resp_val = int(resp['status'])
content = etree.fromstring(content)
if resp_val == 500:
@@ -1157,61 +967,47 @@ class update_user_test(user_test):
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(401, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
-class set_password_test(user_test):
+class SetPasswordTest(UserTest):
- def test_user_password_json(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.tenant, self.user,
- str(self.auth_token))
- url = '%stenants/%s/users/%s/password' % (URL, self.tenant, self.user)
- data = '{"user": { "password": "p@ssword"}}'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.auth_token})
+ def test_user_password(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_password_json(self.tenant,
+ self.user,
+ str(self.auth_token))
resp_val = int(resp['status'])
content = json.loads(content)
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
- delete_user(self.tenant, self.user, str(self.auth_token))
+ utils.delete_user(self.tenant, self.user, str(self.auth_token))
self.assertEqual(200, resp_val)
self.assertEqual('p@ssword', content['user']['password'])
def test_user_password_xml(self):
- header = httplib2.Http(".cache")
- resp, content = create_user_xml(self.tenant, self.user,
- str(self.auth_token))
- url = '%stenants/%s/users/%s/password' % (URL, self.tenant, self.user)
- data = '<?xml version="1.0" encoding="UTF-8"?> \
- <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
- password="p@ssword" />'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.auth_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_password_xml(self.tenant,
+ self.user,
+ str(self.auth_token))
resp_val = int(resp['status'])
content = etree.fromstring(content)
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
- delete_user(self.tenant, self.user, str(self.auth_token))
+ utils.delete_user(self.tenant, self.user, str(self.auth_token))
self.assertEqual(200, resp_val)
self.assertEqual('p@ssword', content.get("password"))
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_user_password_user_disabled_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/password' \
- % (URL, self.tenant, self.userdisabled)
- data = '{"user": { "password": "p@ssword"}}'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.auth_token})
+ def test_user_password_user_disabled(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_password_json(self.tenant,
+ self.userdisabled,
+ str(self.auth_token))
resp_val = int(resp['status'])
content = json.loads(content)
if resp_val == 500:
@@ -1221,15 +1017,10 @@ class set_password_test(user_test):
self.assertEqual(403, resp_val)
def test_user_password_user_disabled_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s' % (URL, self.tenant, self.userdisabled)
- data = '<?xml version="1.0" encoding="UTF-8"?> \
- <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
- password="p@ssword" />'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.auth_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_password_xml(self.tenant,
+ self.userdisabled,
+ str(self.auth_token))
resp_val = int(resp['status'])
content = etree.fromstring(content)
if resp_val == 500:
@@ -1237,15 +1028,15 @@ class set_password_test(user_test):
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
def test_user_password_bad_request_json(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.tenant, self.user,
+ h = httplib2.Http(".cache")
+ utils.create_user(self.tenant, self.user,
str(self.auth_token))
url = '%stenants/%s/users/%s/password' % (URL, self.tenant, self.user)
data = '{"user_bad": { "password": "p@ssword"}}'
- resp, content = header.request(url, "PUT", body=data,
+ resp, content = h.request(url, "PUT", body=data,
headers={"Content-Type": "application/json",
"X-Auth-Token": self.auth_token})
resp_val = int(resp['status'])
@@ -1254,18 +1045,17 @@ class set_password_test(user_test):
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
- delete_user(self.tenant, self.user, str(self.auth_token))
+ utils.delete_user(self.tenant, self.user, str(self.auth_token))
self.assertEqual(400, resp_val)
def test_user_password_bad_request_xml(self):
- header = httplib2.Http(".cache")
- resp, content = create_user_xml(self.tenant, self.user,
- str(self.auth_token))
+ h = httplib2.Http(".cache")
+ utils.create_user_xml(self.tenant, self.user, str(self.auth_token))
url = '%stenants/%s/users/%s/password' % (URL, self.tenant, self.user)
data = '<?xml version="1.0" encoding="UTF-8"?> \
user xmlns="http://docs.openstack.org/identity/api/v2.0" \
password="p@ssword" />'
- resp, content = header.request(url, "PUT", body=data,
+ resp, content = h.request(url, "PUT", body=data,
headers={"Content-Type": "application/xml",
"X-Auth-Token": self.auth_token,
"ACCEPT": "application/xml"})
@@ -1275,17 +1065,15 @@ class set_password_test(user_test):
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
- delete_user(self.tenant, self.user, str(self.auth_token))
+ utils.delete_user(self.tenant, self.user, str(self.auth_token))
self.assertEqual(400, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_user_password_expired_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/password' % (URL, self.tenant, self.user)
- data = '{"user": { "password": "p@ssword"}}'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.exp_auth_token})
+ def test_user_password_expired_token(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_password_json(self.tenant,
+ self.user,
+ str(self.exp_auth_token))
resp_val = int(resp['status'])
content = json.loads(content)
if resp_val == 500:
@@ -1295,15 +1083,10 @@ class set_password_test(user_test):
self.assertEqual(403, resp_val)
def test_user_password_expired_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/password' % (URL, self.tenant, self.user)
- data = '<?xml version="1.0" encoding="UTF-8"?> \
- <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
- password="p@ssword" />'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.exp_auth_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_password_xml(self.tenant,
+ self.user,
+ str(self.exp_auth_token))
resp_val = int(resp['status'])
content = etree.fromstring(content)
if resp_val == 500:
@@ -1311,15 +1094,13 @@ class set_password_test(user_test):
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_user_password_disabled_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/password' % (URL, self.tenant, self.user)
- data = '{"user": { "password": "p@ssword"}}'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.disabled_token})
+ def test_user_password_disabled_token(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_password_json(self.tenant,
+ self.user,
+ str(self.disabled_token))
resp_val = int(resp['status'])
content = json.loads(content)
if resp_val == 500:
@@ -1329,15 +1110,10 @@ class set_password_test(user_test):
self.assertEqual(403, resp_val)
def test_user_password_disabled_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/password' % (URL, self.tenant, self.user)
- data = '<?xml version="1.0" encoding="UTF-8"?> \
- <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
- password="p@ssword" />'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.disabled_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_password_xml(self.tenant,
+ self.user,
+ str(self.disabled_token))
resp_val = int(resp['status'])
content = etree.fromstring(content)
if resp_val == 500:
@@ -1345,15 +1121,15 @@ class set_password_test(user_test):
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_user_password_invalid_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/password' % (URL, self.tenant, self.user)
- data = '{"user": { "password": "p@ssword"}}'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.invalid_token})
+ def test_user_password_invalid_token(self):
+ utils.create_user(self.tenant,
+ self.user,
+ str(self.auth_token))
+ resp, content = utils.user_password_json(self.tenant,
+ self.user,
+ str(self.invalid_token))
resp_val = int(resp['status'])
content = json.loads(content)
if resp_val == 500:
@@ -1363,15 +1139,10 @@ class set_password_test(user_test):
self.assertEqual(404, resp_val)
def test_user_password_invalid_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/password' % (URL, self.tenant, self.user)
- data = '<?xml version="1.0" encoding="UTF-8"?> \
- <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
- password="p@ssword" />'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.invalid_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_password_xml(self.tenant,
+ self.user,
+ str(self.invalid_token))
resp_val = int(resp['status'])
content = etree.fromstring(content)
if resp_val == 500:
@@ -1379,15 +1150,13 @@ class set_password_test(user_test):
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(404, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_user_password_missing_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/password' % (URL, self.tenant, self.user)
- data = '{"user": { "password": "p@ssword"}}'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.missing_token})
+ def test_user_password_missing_token(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_password_json(self.tenant,
+ self.user,
+ str(self.missing_token))
resp_val = int(resp['status'])
content = json.loads(content)
if resp_val == 500:
@@ -1397,15 +1166,10 @@ class set_password_test(user_test):
self.assertEqual(401, resp_val)
def test_user_password_missing_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/password' % (URL, self.tenant, self.user)
- data = '<?xml version="1.0" encoding="UTF-8"?> \
- <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
- password="p@ssword" />'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.missing_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_password_xml(self.tenant,
+ self.user,
+ str(self.missing_token))
resp_val = int(resp['status'])
content = etree.fromstring(content)
if resp_val == 500:
@@ -1413,61 +1177,49 @@ class set_password_test(user_test):
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(401, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
-class set_enabled_test(user_test):
+class SetEnabledTest(UserTest):
- def test_user_enabled_json(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.tenant, self.user,
- str(self.auth_token))
- url = '%stenants/%s/users/%s/enabled' % (URL, self.tenant, self.user)
- data = {"user": {"enabled": True}}
- resp, content = header.request(url, "PUT", body=json.dumps(data),
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.auth_token})
+ def test_user_enabled(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_enabled_json(self.tenant,
+ self.user,
+ str(self.auth_token))
resp_val = int(resp['status'])
-
content = json.loads(content)
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
- delete_user(self.tenant, self.user, str(self.auth_token))
+ utils.delete_user(self.tenant, self.user, str(self.auth_token))
self.assertEqual(200, resp_val)
self.assertEqual(True, content['user']['enabled'])
def test_user_enabled_xml(self):
- header = httplib2.Http(".cache")
- resp, content = create_user_xml(self.tenant, self.user,
- str(self.auth_token))
- url = '%stenants/%s/users/%s/enabled' % (URL, self.tenant, self.user)
- data = '<?xml version="1.0" encoding="UTF-8"?> \
- <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
- enabled="true" />'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.auth_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_enabled_xml(self.tenant,
+ self.user,
+ str(self.auth_token))
resp_val = int(resp['status'])
content = etree.fromstring(content)
if resp_val == 500:
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
- delete_user(self.tenant, self.user, str(self.auth_token))
+ utils.delete_user(self.tenant, self.user, str(self.auth_token))
self.assertEqual(200, resp_val)
self.assertEqual('true', content.get("enabled"))
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
def test_user_enabled_bad_request_json(self):
- header = httplib2.Http(".cache")
- resp, content = create_user(self.tenant, self.user,
+ h = httplib2.Http(".cache")
+ utils.create_user(self.tenant, self.user,
str(self.auth_token))
url = '%stenants/%s/users/%s/enabled' % (URL, self.tenant, self.user)
data = '{"user_bad": { "enabled": true}}'
- resp, content = header.request(url, "PUT", body=data,
+ resp, content = h.request(url, "PUT", body=data,
headers={"Content-Type": "application/json",
"X-Auth-Token": self.auth_token})
resp_val = int(resp['status'])
@@ -1476,18 +1228,18 @@ class set_enabled_test(user_test):
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
- delete_user(self.tenant, self.user, str(self.auth_token))
+ utils.delete_user(self.tenant, self.user, str(self.auth_token))
self.assertEqual(400, resp_val)
def test_user_enabled_bad_request_xml(self):
- header = httplib2.Http(".cache")
- resp, content = create_user_xml(self.tenant, self.user,
+ h = httplib2.Http(".cache")
+ utils.create_user_xml(self.tenant, self.user,
str(self.auth_token))
url = '%stenants/%s/users/%s/enabled' % (URL, self.tenant, self.user)
data = '<?xml version="1.0" encoding="UTF-8"?> \
user xmlns="http://docs.openstack.org/identity/api/v2.0" \
enabled="true" />'
- resp, content = header.request(url, "PUT", body=data,
+ resp, content = h.request(url, "PUT", body=data,
headers={"Content-Type": "application/xml",
"X-Auth-Token": self.auth_token,
"ACCEPT": "application/xml"})
@@ -1497,17 +1249,42 @@ class set_enabled_test(user_test):
self.fail('Identity Fault')
elif resp_val == 503:
self.fail('Service Not Available')
- delete_user(self.tenant, self.user, str(self.auth_token))
+ utils.delete_user(self.tenant, self.user, str(self.auth_token))
self.assertEqual(400, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_user_enabled_expired_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/enabled' % (URL, self.tenant, self.user)
- data = '{"user": { "enabled": true}}'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.exp_auth_token})
+ def test_user_enabled_disabled_tenant(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_enabled_json('0000',
+ self.user,
+ str(self.auth_token))
+ resp_val = int(resp['status'])
+ content = json.loads(content)
+ if resp_val == 500:
+ self.fail('Identity Fault')
+ elif resp_val == 503:
+ self.fail('Service Not Available')
+ self.assertEqual(403, resp_val)
+
+ def test_user_enabled_disabled_tenant_xml(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_enabled_xml('0000',
+ self.user,
+ str(self.auth_token))
+ resp_val = int(resp['status'])
+ content = etree.fromstring(content)
+ if resp_val == 500:
+ self.fail('Identity Fault')
+ elif resp_val == 503:
+ self.fail('Service Not Available')
+ self.assertEqual(403, resp_val)
+ self.assertEqual('application/xml', utils.content_type(resp))
+
+ def test_user_enabled_expired_token(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_enabled_json(self.tenant,
+ self.user,
+ str(self.exp_auth_token))
resp_val = int(resp['status'])
content = json.loads(content)
if resp_val == 500:
@@ -1517,15 +1294,10 @@ class set_enabled_test(user_test):
self.assertEqual(403, resp_val)
def test_user_enabled_expired_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/enabled' % (URL, self.tenant, self.user)
- data = '<?xml version="1.0" encoding="UTF-8"?> \
- <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
- enabled="true" />'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.exp_auth_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_enabled_xml(self.tenant,
+ self.user,
+ str(self.exp_auth_token))
resp_val = int(resp['status'])
content = etree.fromstring(content)
if resp_val == 500:
@@ -1533,15 +1305,13 @@ class set_enabled_test(user_test):
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_user_enabled_disabled_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/enabled' % (URL, self.tenant, self.user)
- data = '{"user": { "enabled": true}}'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.disabled_token})
+ def test_user_enabled_disabled_token(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_enabled_json(self.tenant,
+ self.user,
+ str(self.disabled_token))
resp_val = int(resp['status'])
content = json.loads(content)
if resp_val == 500:
@@ -1551,15 +1321,10 @@ class set_enabled_test(user_test):
self.assertEqual(403, resp_val)
def test_user_enabled_disabled_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/enabled' % (URL, self.tenant, self.user)
- data = '<?xml version="1.0" encoding="UTF-8"?> \
- <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
- enabled="true" />'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.disabled_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_enabled_xml(self.tenant,
+ self.user,
+ str(self.disabled_token))
resp_val = int(resp['status'])
content = etree.fromstring(content)
if resp_val == 500:
@@ -1567,15 +1332,13 @@ class set_enabled_test(user_test):
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(403, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_user_enabled_invalid_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/enabled' % (URL, self.tenant, self.user)
- data = '{"user": { "enabled": true}}'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.invalid_token})
+ def test_user_enabled_invalid_token(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_enabled_json(self.tenant,
+ self.user,
+ str(self.invalid_token))
resp_val = int(resp['status'])
content = json.loads(content)
if resp_val == 500:
@@ -1585,15 +1348,10 @@ class set_enabled_test(user_test):
self.assertEqual(404, resp_val)
def test_user_enabled_invalid_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/enabled' % (URL, self.tenant, self.user)
- data = '<?xml version="1.0" encoding="UTF-8"?> \
- <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
- enabled="true" />'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/xml",\
- "X-Auth-Token": self.invalid_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_enabled_xml(self.tenant,
+ self.user,
+ str(self.invalid_token))
resp_val = int(resp['status'])
content = etree.fromstring(content)
if resp_val == 500:
@@ -1601,15 +1359,13 @@ class set_enabled_test(user_test):
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(404, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
- def test_user_enabled_missing_token_json(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/enabled' % (URL, self.tenant, self.user)
- data = '{"user": { "enabled": true}}'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/json",
- "X-Auth-Token": self.missing_token})
+ def test_user_enabled_missing_token(self):
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_enabled_json(self.tenant,
+ self.user,
+ str(self.missing_token))
resp_val = int(resp['status'])
content = json.loads(content)
if resp_val == 500:
@@ -1619,15 +1375,10 @@ class set_enabled_test(user_test):
self.assertEqual(401, resp_val)
def test_user_enabled_missing_token_xml(self):
- header = httplib2.Http(".cache")
- url = '%stenants/%s/users/%s/password' % (URL, self.tenant, self.user)
- data = '<?xml version="1.0" encoding="UTF-8"?> \
- <user xmlns="http://docs.openstack.org/identity/api/v2.0" \
- enabled="true" />'
- resp, content = header.request(url, "PUT", body=data,
- headers={"Content-Type": "application/xml",
- "X-Auth-Token": self.missing_token,
- "ACCEPT": "application/xml"})
+ utils.create_user(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.user_enabled_xml(self.tenant,
+ self.user,
+ str(self.missing_token))
resp_val = int(resp['status'])
content = etree.fromstring(content)
if resp_val == 500:
@@ -1635,7 +1386,198 @@ class set_enabled_test(user_test):
elif resp_val == 503:
self.fail('Service Not Available')
self.assertEqual(401, resp_val)
- self.assertEqual('application/xml', content_type(resp))
+ self.assertEqual('application/xml', utils.content_type(resp))
+
+
+class AddUserTest(UserTest):
+
+ def setUp(self):
+ self.token = utils.get_token('joeuser', 'secrete', '1234')
+ self.tenant = utils.get_another_tenant()
+ self.password = utils.get_password()
+ self.email = utils.get_email()
+ self.user = 'joeuser'
+ self.userdisabled = utils.get_userdisabled()
+ self.auth_token = utils.get_auth_token()
+ self.exp_auth_token = utils.get_exp_auth_token()
+ self.disabled_token = utils.get_disabled_token()
+ self.missing_token = utils.get_none_token()
+ self.invalid_token = utils.get_non_existing_token()
+
+ def tearDown(self):
+ utils.delete_user(self.tenant, self.user, str(self.auth_token))
+ utils.delete_tenant(self.tenant, str(self.auth_token))
+
+ def test_add_user_tenant(self):
+ utils.create_tenant(self.tenant, str(self.auth_token))
+ resp, content = utils.add_user_json(self.tenant,
+ self.user,
+ str(self.auth_token))
+ resp_val = int(resp['status'])
+ if resp_val == 500:
+ self.fail('Identity Fault')
+ elif resp_val == 503:
+ self.fail('Service Not Available')
+ self.assertEqual(200, resp_val)
+
+ def test_add_user_tenant_xml(self):
+ utils.create_tenant(self.tenant, str(self.auth_token))
+ resp, content = utils.add_user_xml(self.tenant,
+ self.user,
+ str(self.auth_token))
+ resp_val = int(resp['status'])
+ if resp_val == 500:
+ self.fail('Identity Fault')
+ elif resp_val == 503:
+ self.fail('Service Not Available')
+ self.assertEqual(200, resp_val)
+
+ def test_add_user_tenant_conflict(self):
+ utils.create_tenant(self.tenant, str(self.auth_token))
+ utils.add_user_json(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.add_user_json(self.tenant,
+ self.user,
+ str(self.auth_token))
+
+ resp_val = int(resp['status'])
+ if resp_val == 500:
+ self.fail('Identity Fault')
+ elif resp_val == 503:
+ self.fail('Service Not Available')
+ self.assertEqual(409, resp_val)
+
+ def test_add_user_tenant_conflict_xml(self):
+ utils.create_tenant(self.tenant, str(self.auth_token))
+ utils.add_user_xml(self.tenant, self.user, str(self.auth_token))
+ resp, content = utils.add_user_xml(self.tenant,
+ self.user,
+ str(self.auth_token))
+ resp_val = int(resp['status'])
+ if resp_val == 500:
+ self.fail('Identity Fault')
+ elif resp_val == 503:
+ self.fail('Service Not Available')
+ self.assertEqual(409, resp_val)
+
+ def test_add_user_tenant_expired_token(self):
+ utils.create_tenant(self.tenant, str(self.auth_token))
+ resp, content = utils.add_user_json(self.tenant,
+ self.user,
+ str(self.exp_auth_token))
+ resp_val = int(resp['status'])
+ if resp_val == 500:
+ self.fail('Identity Fault')
+ elif resp_val == 503:
+ self.fail('Service Not Available')
+ self.assertEqual(403, resp_val)
+
+ def test_add_user_tenant_expired_token_xml(self):
+ utils.create_tenant(self.tenant, str(self.auth_token))
+ resp, content = utils.add_user_xml(self.tenant,
+ self.user,
+ str(self.exp_auth_token))
+ resp_val = int(resp['status'])
+ if resp_val == 500:
+ self.fail('Identity Fault')
+ elif resp_val == 503:
+ self.fail('Service Not Available')
+ self.assertEqual(403, resp_val)
+
+ def test_add_user_tenant_disabled_token(self):
+ utils.create_tenant(self.tenant, str(self.auth_token))
+ resp, content = utils.add_user_json(self.tenant,
+ self.user,
+ str(self.disabled_token))
+ resp_val = int(resp['status'])
+ if resp_val == 500:
+ self.fail('Identity Fault')
+ elif resp_val == 503:
+ self.fail('Service Not Available')
+ self.assertEqual(403, resp_val)
+
+ def test_add_user_tenant_disabled_token_xml(self):
+ utils.create_tenant(self.tenant, str(self.auth_token))
+ resp, content = utils.add_user_xml(self.tenant,
+ self.user,
+ str(self.disabled_token))
+ resp_val = int(resp['status'])
+ if resp_val == 500:
+ self.fail('Identity Fault')
+ elif resp_val == 503:
+ self.fail('Service Not Available')
+ self.assertEqual(403, resp_val)
+
+ def test_add_user_tenant_invalid_token(self):
+ utils.create_tenant(self.tenant, str(self.auth_token))
+ resp, content = utils.add_user_json(self.tenant,
+ self.user,
+ str(self.invalid_token))
+ resp_val = int(resp['status'])
+ if resp_val == 500:
+ self.fail('Identity Fault')
+ elif resp_val == 503:
+ self.fail('Service Not Available')
+ self.assertEqual(404, resp_val)
+
+ def test_add_user_tenant_invalid_token_xml(self):
+ utils.create_tenant(self.tenant, str(self.auth_token))
+ resp, content = utils.add_user_xml(self.tenant,
+ self.user,
+ str(self.invalid_token))
+ resp_val = int(resp['status'])
+ if resp_val == 500:
+ self.fail('Identity Fault')
+ elif resp_val == 503:
+ self.fail('Service Not Available')
+ self.assertEqual(404, resp_val)
+
+ def test_add_user_tenant_missing_token(self):
+ utils.create_tenant(self.tenant, str(self.auth_token))
+ resp, content = utils.add_user_json(self.tenant,
+ self.user,
+ str(self.missing_token))
+ resp_val = int(resp['status'])
+ if resp_val == 500:
+ self.fail('Identity Fault')
+ elif resp_val == 503:
+ self.fail('Service Not Available')
+ self.assertEqual(401, resp_val)
+
+ def test_add_user_tenant_missing_token_xml(self):
+ utils.create_tenant(self.tenant, str(self.auth_token))
+ resp, content = utils.add_user_xml(self.tenant,
+ self.user,
+ str(self.missing_token))
+ resp_val = int(resp['status'])
+ if resp_val == 500:
+ self.fail('Identity Fault')
+ elif resp_val == 503:
+ self.fail('Service Not Available')
+ self.assertEqual(401, resp_val)
+
+ def test_add_user_tenant_disabled_tenant(self):
+ utils.create_tenant(self.tenant, str(self.auth_token))
+ resp, content = utils.add_user_json('0000',
+ self.user,
+ str(self.auth_token))
+ resp_val = int(resp['status'])
+ if resp_val == 500:
+ self.fail('Identity Fault')
+ elif resp_val == 503:
+ self.fail('Service Not Available')
+ self.assertEqual(403, resp_val)
+
+ def test_add_user_tenant_disabled_tenant_xml(self):
+ utils.create_tenant(self.tenant, str(self.auth_token))
+ resp, content = utils.add_user_xml('0000',
+ self.user,
+ str(self.auth_token))
+ resp_val = int(resp['status'])
+ if resp_val == 500:
+ self.fail('Identity Fault')
+ elif resp_val == 503:
+ self.fail('Service Not Available')
+ self.assertEqual(403, resp_val)
if __name__ == '__main__':
unittest.main()
diff --git a/test/unit/test_version.py b/test/unit/test_version.py
index 76b013ab..3e98935e 100644
--- a/test/unit/test_version.py
+++ b/test/unit/test_version.py
@@ -1,14 +1,31 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+# Copyright (c) 2010-2011 OpenStack, LLC.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+import httplib2
import os
import sys
-# Need to access identity module
sys.path.append(os.path.abspath(os.path.join(os.path.abspath(__file__),
'..', '..', '..', '..', 'keystone')))
import unittest
-import httplib2
+
import test_common as utils
-class version_test(unittest.TestCase):
+class VersionTest(unittest.TestCase):
#Given _a_ to make inherited test cases in an order.
#here to call below method will call as last test case