summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHank Leininger <hlein@korelogic.com>2014-04-02 04:13:34 -0400
committerHank Leininger <hlein@korelogic.com>2014-04-02 04:13:34 -0400
commit8649822e0854a899412de72c124349ffa74667dd (patch)
treed7ba0a8b2d4932e1293fd64759c546b68a8c4e6f
parent148aa094a3419c624d535ab317c3595479439c80 (diff)
downloadpysaml2-8649822e0854a899412de72c124349ffa74667dd.tar.gz
Various spelling/grammar tweaks and typo fixes.
Usually just a word or punctuation; occasionally I rewrote a sentence if I had a hard time determining what was meant by the original. (N.B. if I misunderstood something, then my re-wording will be wrong!) Also added eol to many files that were missing it, which throws off 'cat somefile' at a shell prompt (but did not yet touch anything under src/, which also has many files without eol). I did not re-line-wrap the text I changed, so that the diffs are minimized and meaningful changes are easier to spot.
-rw-r--r--.idea/libraries/sass_stdlib.xml2
-rw-r--r--TODO4
-rw-r--r--doc/examples/sp.rst20
-rw-r--r--doc/howto/config.rst64
-rw-r--r--doc/howto/index.rst6
-rw-r--r--doc/index.rst4
-rw-r--r--doc/install.rst2
-rwxr-xr-xdoc/make.sh2
-rw-r--r--example/README6
-rwxr-xr-xexample/idp2/idp.py2
-rw-r--r--example/idp2/idp_conf.py.example4
-rwxr-xr-xexample/idp2_repoze/idp.py4
-rw-r--r--example/idp2_repoze/idp_conf.py.example4
-rwxr-xr-xexample/sp-repoze/sp.py8
-rwxr-xr-xexample/sp-wsgi/sp.py6
-rw-r--r--tests/_test_80_p11_backend.py2
-rw-r--r--tests/attributemaps/basic.py2
-rw-r--r--tests/attributemaps/saml_uri.py2
-rw-r--r--tests/attributemaps/shibboleth_uri.py2
-rw-r--r--tests/ecp_soap.xml2
-rw-r--r--tests/edugain.pem2
-rw-r--r--tests/enc_tmpl.xml2
-rw-r--r--tests/fakeIDP.py2
-rwxr-xr-xtests/get_metadata.sh2
-rw-r--r--tests/kalmar2.pem2
-rw-r--r--tests/pre_enc.xml2
-rw-r--r--tests/pubkey.pem2
-rw-r--r--tests/simplesamlphp_authnresponse.xml2
-rw-r--r--tests/swamid.md2
-rw-r--r--tests/test_01_xmlenc.py2
-rw-r--r--tests/test_13_validate.py3
-rw-r--r--tests/test_20_assertion.py2
-rw-r--r--tests/test_31_config.py2
-rw-r--r--tests/test_32_cache.py3
-rw-r--r--tests/test_34_population.py2
-rw-r--r--tests/test_37_entity_categories.py2
-rw-r--r--tests/test_41_response.py2
-rw-r--r--tests/test_42_enc.py2
-rw-r--r--tests/test_50_server.py2
-rw-r--r--tests/test_65_authn_query.py2
-rw-r--r--tests/test_66_name_id_mapping.py2
-rw-r--r--tests/test_67_manage_name_id.py2
-rw-r--r--tests/test_68_assertion_id.py2
-rw-r--r--tests/test_69_discovery.py2
-rw-r--r--tests/test_72_eptid.py2
-rw-r--r--tests/test_77_authn_context.py2
-rw-r--r--tests/test_81_certificates.py2
-rw-r--r--tests/test_82_pefim.py2
-rwxr-xr-xtools/parse_xsd2.py4
49 files changed, 102 insertions, 108 deletions
diff --git a/.idea/libraries/sass_stdlib.xml b/.idea/libraries/sass_stdlib.xml
index 546bfd17..3f13d74c 100644
--- a/.idea/libraries/sass_stdlib.xml
+++ b/.idea/libraries/sass_stdlib.xml
@@ -5,4 +5,4 @@
<root url="file://$APPLICATION_HOME_DIR$/plugins/sass/lib/stubs/sass_functions.scss" />
</SOURCES>
</library>
-</component> \ No newline at end of file
+</component>
diff --git a/TODO b/TODO
index 13133455..060244ab 100644
--- a/TODO
+++ b/TODO
@@ -1,3 +1,3 @@
-1. Write documentations.
-2. Write unittests for signature related utility methods.
+1. Write documentation.
+2. Write unit tests for signature related utility methods.
3. Complete saml2 message class.
diff --git a/doc/examples/sp.rst b/doc/examples/sp.rst
index 46dfff35..a5b4ed6e 100644
--- a/doc/examples/sp.rst
+++ b/doc/examples/sp.rst
@@ -28,7 +28,7 @@ instance, the friendly name is used as the key.
Setup
-----
-I you look in the example/sp directory of the distribution you will see
+If you look in the example/sp directory of the distribution you will see
the necessary files:
application.py
@@ -64,7 +64,7 @@ it line by line::
"service": ["sp"],
-Tells the software what type of services the software are suppost to
+Tells the software what type of services the software is supposed to
supply. It is used to check for the
completeness of the configuration and also when constructing metadata from
the configuration. More about that later. Allowed values are: "sp"
@@ -119,13 +119,13 @@ building metadata. ::
#telephone_number
}]
-Another piece of information that only is matters if you build and distribute
+Another piece of information that only matters if you build and distribute
metadata.
So, now to that part. In order to allow the IdP to talk to you you may have
to provide the one running the IdP with a metadata file.
If you have a SP configuration file similar to the one I've walked you
-through here, but with your information. You can make the metadata file
+through here, but with your information, you can make the metadata file
by running the make_metadata script you can find in the tools directory.
Change directory to where you have the configuration file and do ::
@@ -138,7 +138,7 @@ Repoze configuration
--------------------
I'm not going through the INI file format here. You should read
-`Middleware Responsibilities <http://static.repoze.org/whodocs/narr.html>`_
+`Middleware Responsibilities <http://docs.repoze.org/who/2.0/middleware.html>`_
to get a good introduction to the concept.
The configuration of the pysaml2 part in the applications middleware are
@@ -178,16 +178,16 @@ Which means that the plugin is used in all phases.
The application
---------------
-Is as said before extremly simple. The only thing that is connected to
-the PySaml2 configuration are at the bottom, namely where the server are.
+The app is, as said before, extremely simple. The only thing that is connected to
+the PySaml2 configuration is at the bottom, namely where the server is.
You have to ascertain that this coincides with what is specified in the
-PySaml2 configuration. Apart from that there really are no thing in
+PySaml2 configuration. Apart from that there really is nothing in
application.py that demands that you use PySaml2 as middleware. If you
switched to using the LDAP or CAS plugins nothing would change in the
application. In the application configuration yes! But not in the application.
And that is really how it should be done.
-There is one assumption and that is that the middleware plugin that gathers
-information about the user places the extra information in as value on the
+There is one assumption, and that is that the middleware plugin that gathers
+information about the user places the extra information in as a value on the
"user" property in the dictionary found under the key "repoze.who.identity"
in the environment.
diff --git a/doc/howto/config.rst b/doc/howto/config.rst
index 07a253c3..be9b9cbc 100644
--- a/doc/howto/config.rst
+++ b/doc/howto/config.rst
@@ -3,15 +3,15 @@
Configuration of pySAML2 entities
=================================
-Whether you plan to run a pySAML2 Service Provider, Identity provider or an
+Whether you plan to run a pySAML2 Service Provider, Identity Provider or an
attribute authority you have to configure it. The format of the configuration
-file is the same disregarding which type of service you plan to run.
-What differs is some of the directives.
-Below you will find a list of all the used directives in alphabetic order.
+file is the same regardless of which type of service you plan to run.
+What differs are some of the directives.
+Below you will find a list of all the used directives in alphabetical order.
The configuration is written as a python module which contains a named
dictionary ("CONFIG") that contains the configuration directives.
-The basic structure of the configuration file is therefor like this::
+The basic structure of the configuration file is therefore like this::
from saml2 import BINDING_HTTP_REDIRECT
@@ -90,9 +90,9 @@ The attribute map module contains a MAP dictionary with three items. The
The *to* and *fro* sub-dictionaries then contain the mapping between the names.
As you see the format is again a python dictionary where the key is the
-name to convert from and the value is the name to convert to.
+name to convert from, and the value is the name to convert to.
-Since *to* in most cases are the inverse of the *fro* file, the
+Since *to* in most cases is the inverse of the *fro* file, the
software allowes you to only specify one of them and it will
automatically create the other.
@@ -111,7 +111,7 @@ contact_person
This is only used by *make_metadata.py* when it constructs the metadata for
the service described by the configuration file.
-This is where you described who can be contacted if questions arises
+This is where you describe who can be contacted if questions arise
about the service or if support is needed. The possible types are according to
the standard **technical**, **support**, **administrative**, **billing**
and **other**.::
@@ -148,7 +148,7 @@ Format::
The globally unique identifier of the entity.
-.. note:: There is a recommendation that the entityid should point to a real
+.. note:: It is recommended that the entityid should point to a real
webpage where the metadata for the entity can be found.
key_file
@@ -160,13 +160,13 @@ Format::
*key_file* is the name of a PEM formatted file that contains the private key
of the service. This is presently used both to encrypt/sign assertions and as
-client key in a HTTPS session.
+the client key in an HTTPS session.
metadata
^^^^^^^^
Contains a list of places where metadata can be found. This can be either
-a file accessible on the server the service runs on or somewhere on the net.::
+a file accessible on the server the service runs on, or somewhere on the net.::
"metadata" : {
"local": [
@@ -180,8 +180,8 @@ a file accessible on the server the service runs on or somewhere on the net.::
},
The above configuration means that the service should read two local
-metadata files and on top of that load one from the net. To verify the
-authenticity of the file downloaded from the net the local copy of the
+metadata files, and on top of that load one from the net. To verify the
+authenticity of the file downloaded from the net, the local copy of the
public key should be used.
This public key must be acquired by some out-of-band method.
@@ -205,7 +205,7 @@ Where you describe the organization responsible for the service.::
service
^^^^^^^
-Which services the server will provide, those are combinations of "idp","sp"
+Which services the server will provide; those are combinations of "idp", "sp"
and "aa".
So if a server is a Service Provider (SP) then the configuration
could look something like this::
@@ -228,13 +228,13 @@ could look something like this::
There are two options common to all services: 'name' and 'endpoints'.
The remaining options are specific to one or the other of the service types.
-Which one is specified along side the name of the option
+Which one is specified along side the name of the option.
timeslack
^^^^^^^^^
If your computer and another computer that you are communicating with are not
-in synch regarding the computer clock. Then you here can state how big a
+in synch regarding the computer clock, then here you can state how big a
difference you are prepared to accept.
.. note:: This will indiscriminately effect all time comparisons.
@@ -275,7 +275,7 @@ policy
If the server is an IdP and/or an AA then there might be reasons to do things
differently depending on who is asking; this is where that is specified.
-The keys are 'default' and SP entity identifiers, default is used whenever
+The keys are 'default' and SP entity identifiers. Default is used whenever
there is no entry for a specific SP. The reasoning is also that if there is
no default and only SP entity identifiers as keys, then the server will only
except connections from the specified SPs.
@@ -301,12 +301,12 @@ An example might be::
}
*lifetime*
- is the maximum amount of time before the information should be
+ This is the maximum amount of time before the information should be
regarded as stale. In an Assertion this is represented in the NotOnOrAfter
attribute.
*attribute_restrictions*
By default there is no restrictions as to which attributes should be
- return. Instead all the attributes and values that is gathered by the
+ return. Instead all the attributes and values that are gathered by the
database backends will be returned if nothing else is stated.
In the example above the SP with the entity identifier
"urn:mace:umu.se:saml:roland:sp"
@@ -332,7 +332,7 @@ regular expressions.::
}
}
-Here only mail addresses that ends with ".umu.se" will be returned.
+Here only mail addresses that end with ".umu.se" will be returned.
sp
^^
@@ -345,7 +345,7 @@ authn_requests_signed
Indicates if the Authentication Requests sent by this SP should be signed
by default. This can be overriden by application code for a specific call.
-This set the AuthnRequestsSigned attribute of the SPSSODescriptor node.
+This sets the AuthnRequestsSigned attribute of the SPSSODescriptor node
of the metadata so the IdP will know this SP preference.
Valid values are "true" or "false". Default value is "false".
@@ -362,9 +362,9 @@ Example::
idp
"""
-Defines the set of IdPs that this SP is allowed to use. If not all the IdPs in
-the metadata is allowed, then the value is expected to be a list with entity
-identifiers for the allowed IdPs.
+Defines the set of IdPs that this SP is allowed to use; if unset, all listed
+IdPs may be used. If set, then the value is expected to be a list with entity
+identifiers for the allowed IdPs.
A typical configuration, when the allowed set of IdPs are limited, would look
something like this::
@@ -376,8 +376,6 @@ something like this::
In this case the SP has only one IdP it can use.
-If all IdPs present in the metadata loaded this directive must be left out.
-
optional_attributes
"""""""""""""""""""
@@ -415,7 +413,7 @@ want_assertions_signed
""""""""""""""""""""""
Indicates if this SP wants the IdP to send the assertions signed. This
-set the WantAssertionsSigned attribute of the SPSSODescriptor node.
+sets the WantAssertionsSigned attribute of the SPSSODescriptor node
of the metadata so the IdP will know this SP preference.
Valid values are "true" or "false". Default value is "true".
@@ -440,7 +438,7 @@ endpoints
"""""""""
Where the endpoints for the services provided are.
-This directive has as value a dictionary with one of the following keys:
+This directive has as value a dictionary with one or more of the following keys:
* artifact_resolution_service (aa, idp and sp)
* assertion_consumer_service (sp)
@@ -474,7 +472,7 @@ Indicates if this entity will sign the Logout Requests originated from it.
This can be overriden by application code for a specific call.
-Valid values are "true" or "false". Default value is "false"
+Valid values are "true" or "false". Default value is "false".
Example::
@@ -491,7 +489,7 @@ The name of a database where the map between a local identifier and
a distributed identifier is kept. By default this is a shelve database.
So if you just specify name, then a shelve database with that name
is created. On the other hand if you specify a tuple then the first
-element in the tuple specifise which type of database you want to use
+element in the tuple specifies which type of database you want to use
and the second element is the address of the database.
Example::
@@ -519,7 +517,7 @@ Gives information about common identifiers for virtual_organizations::
},
Keys in this dictionary are the identifiers for the virtual organizations.
-The arguments per organization is 'nameid_format' and 'common_identifier'.
+The arguments per organization are 'nameid_format' and 'common_identifier'.
Useful if all the IdPs and AAs that are involved in a virtual organization
have common attribute values for users that are part of the VO.
@@ -562,8 +560,8 @@ We start with a simple but fairly complete Service provider configuration::
}
This is the typical setup for a SP.
-A metadata file to load is *always* needed, but it can of course be
-containing anything from 1 up to many entity descriptions.
+A metadata file to load is *always* needed, but it can of course
+contain anything from 1 up to many entity descriptions.
------
diff --git a/doc/howto/index.rst b/doc/howto/index.rst
index e9447c68..52f2d409 100644
--- a/doc/howto/index.rst
+++ b/doc/howto/index.rst
@@ -12,10 +12,10 @@ If you have not done it yet, read the :ref:`install`
Well, now you have it installed and you want to do something.
And I'm sorry to tell you this; but there isn't really a lot you can do with
-this code on it's own.
+this code on its own.
Sure you can send a AuthenticationRequest to an IdentityProvider or a
-AttributeQuery to an AttributeAuthority but in order to get what they
+AttributeQuery to an AttributeAuthority, but in order to get what they
return you have to sit behind a Web server. Well that is not really true since
the AttributeQuery would be over SOAP and you would get the result over the
connection you have to the AttributeAuthority.
@@ -29,7 +29,7 @@ But it can be used in a non-WSGI environment too.
So you will find descriptions of both cases here.
-The configuration is the same disregarding whether you are using PySAML2 in a
+The configuration is the same regardless of whether you are using PySAML2 in a
WSGI or non-WSGI environment.
.. toctree::
diff --git a/doc/index.rst b/doc/index.rst
index 1266adc1..1694c425 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -13,7 +13,7 @@ pysaml2
PySAML2 is a pure python implementation of SAML2. It contains all necessary pieces for building a SAML2 service
provider or an identity provider. The distribution contains examples of both. Originally written to work in a WSGI
-environment there are extensions that allow you to use it with other frameworks.
+environment, there are extensions that allow you to use it with other frameworks.
Contents:
@@ -39,4 +39,4 @@ Indices and tables
<a href="https://github.com/rohe/pysaml2" class="github" target="_blank">
<img style="position: absolute; top: 0; right: 0; border: 0;" src="_static/ViewmeonGitHub.png" alt="View me on GitHub" class="github"/>
- </a> \ No newline at end of file
+ </a>
diff --git a/doc/install.rst b/doc/install.rst
index 58910e29..467a2ccd 100644
--- a/doc/install.rst
+++ b/doc/install.rst
@@ -53,5 +53,5 @@ The tests are based on the pypy test environment, so::
py.test
is what you should use. If you don't have py.test, get it it's part of pypy!
-It's really good !
+It's really good!
diff --git a/doc/make.sh b/doc/make.sh
index a364b544..b9d96a42 100755
--- a/doc/make.sh
+++ b/doc/make.sh
@@ -2,4 +2,4 @@
rm -f ./code/*
sphinx-apidoc -F -o ../doc/code ../src
make clean
-make html \ No newline at end of file
+make html
diff --git a/example/README b/example/README
index 2964918e..70d8cca6 100644
--- a/example/README
+++ b/example/README
@@ -23,8 +23,8 @@ To run the setup do
./all.sh start
-and then use your favourit webbrowser to look at "http://localhost:8087/whoami"
+and then use your favourite webbrowser to look at "http://localhost:8087/whoami"
-./all stop
+./all.sh stop
-will of course stop your IdP and SP. \ No newline at end of file
+will of course stop your IdP and SP.
diff --git a/example/idp2/idp.py b/example/idp2/idp.py
index 04843bd8..3828d412 100755
--- a/example/idp2/idp.py
+++ b/example/idp2/idp.py
@@ -871,7 +871,7 @@ def application(environ, start_response):
captures in the WSGI environment as `myapp.url_args` so that
the functions from above can access the url placeholders.
- If nothing matches call the `not_found` function.
+ If nothing matches, call the `not_found` function.
:param environ: The HTTP application environment
:param start_response: The application to run when the handling of the
diff --git a/example/idp2/idp_conf.py.example b/example/idp2/idp_conf.py.example
index c7730a66..6fd87148 100644
--- a/example/idp2/idp_conf.py.example
+++ b/example/idp2/idp_conf.py.example
@@ -116,7 +116,7 @@ CONFIG = {
"email_address": "support@example.com"
},
],
- # This database holds the map between a subjects local identifier and
+ # This database holds the map between a subject's local identifier and
# the identifier returned to a SP
"xmlsec_binary": xmlsec_path,
#"attribute_map_dir": "../attributemaps",
@@ -141,4 +141,4 @@ PWD_VERIFY = "%s/verify_pwd" % BASE
AUTHORIZATION = {
"CAS" : {"ACR": "CAS", "WEIGHT": 1, "URL": CAS_VERIFY},
"UserPassword" : {"ACR": "PASSWORD", "WEIGHT": 2, "URL": PWD_VERIFY}
-} \ No newline at end of file
+}
diff --git a/example/idp2_repoze/idp.py b/example/idp2_repoze/idp.py
index 7520b87b..562ce51f 100755
--- a/example/idp2_repoze/idp.py
+++ b/example/idp2_repoze/idp.py
@@ -869,10 +869,10 @@ def application(environ, start_response):
"""
The main WSGI application. Dispatch the current request to
the functions from above and store the regular expression
- captures in the WSGI environment as `myapp.url_args` so that
+ captures in the WSGI environment as `myapp.url_args` so that
the functions from above can access the url placeholders.
- If nothing matches call the `not_found` function.
+ If nothing matches, call the `not_found` function.
:param environ: The HTTP application environment
:param start_response: The application to run when the handling of the
diff --git a/example/idp2_repoze/idp_conf.py.example b/example/idp2_repoze/idp_conf.py.example
index c7730a66..6fd87148 100644
--- a/example/idp2_repoze/idp_conf.py.example
+++ b/example/idp2_repoze/idp_conf.py.example
@@ -116,7 +116,7 @@ CONFIG = {
"email_address": "support@example.com"
},
],
- # This database holds the map between a subjects local identifier and
+ # This database holds the map between a subject's local identifier and
# the identifier returned to a SP
"xmlsec_binary": xmlsec_path,
#"attribute_map_dir": "../attributemaps",
@@ -141,4 +141,4 @@ PWD_VERIFY = "%s/verify_pwd" % BASE
AUTHORIZATION = {
"CAS" : {"ACR": "CAS", "WEIGHT": 1, "URL": CAS_VERIFY},
"UserPassword" : {"ACR": "PASSWORD", "WEIGHT": 2, "URL": PWD_VERIFY}
-} \ No newline at end of file
+}
diff --git a/example/sp-repoze/sp.py b/example/sp-repoze/sp.py
index 40d88585..f16cc399 100755
--- a/example/sp-repoze/sp.py
+++ b/example/sp-repoze/sp.py
@@ -96,7 +96,7 @@ def whoami(environ, start_response, user):
if not nameid:
return not_authn(environ, start_response)
if ava:
- response = ["<h2>Your identity are supposed to be</h2>"]
+ response = ["<h2>Your identity is supposed to be</h2>"]
response.extend(dict_to_table(ava))
else:
response = [
@@ -222,10 +222,10 @@ def application(environ, start_response):
"""
The main WSGI application. Dispatch the current request to
the functions from above and store the regular expression
- captures in the WSGI environment as `myapp.url_args` so that
+ captures in the WSGI environment as `myapp.url_args` so that
the functions from above can access the url placeholders.
- If nothing matches call the `not_found` function.
+ If nothing matches, call the `not_found` function.
:param environ: The HTTP application environment
:param start_response: The application to run when the handling of the
@@ -293,4 +293,4 @@ if __name__ == '__main__':
from wsgiref.simple_server import make_server
srv = make_server('', PORT, app_with_auth)
print "SP listening on port: %s" % PORT
- srv.serve_forever() \ No newline at end of file
+ srv.serve_forever()
diff --git a/example/sp-wsgi/sp.py b/example/sp-wsgi/sp.py
index a9ea34e7..2cf9ddc5 100755
--- a/example/sp-wsgi/sp.py
+++ b/example/sp-wsgi/sp.py
@@ -93,7 +93,7 @@ def dict_to_table(ava, lev=0, width=1):
def handle_static(environ, start_response, path):
"""
Creates a response for a static file. There might be a longer path
- then just /static/... if so strip the path leading up to static.
+ then just /static/... - if so strip the path leading up to static.
:param environ: wsgi enviroment
:param start_response: wsgi start response
@@ -645,7 +645,7 @@ def application(environ, start_response):
The main WSGI application. Dispatch the current request to
the functions from above.
- If nothing matches call the `not_found` function.
+ If nothing matches, call the `not_found` function.
:param environ: The HTTP application environment
:param start_response: The application to run when the handling of the
@@ -689,7 +689,7 @@ PORT = service_conf.PORT
SERVER_CERT = service_conf.SERVER_CERT
SERVER_KEY = service_conf.SERVER_KEY
# This is of course the certificate chain for the CA that signed
-# you cert and all the way up to the top
+# your cert and all the way up to the top
CERT_CHAIN = service_conf.CERT_CHAIN
if __name__ == '__main__':
diff --git a/tests/_test_80_p11_backend.py b/tests/_test_80_p11_backend.py
index 8dcca337..73d5364c 100644
--- a/tests/_test_80_p11_backend.py
+++ b/tests/_test_80_p11_backend.py
@@ -224,4 +224,4 @@ def test_xmlsec_cryptobackend():
if __name__ == "__main__":
- test_xmlsec_cryptobackend() \ No newline at end of file
+ test_xmlsec_cryptobackend()
diff --git a/tests/attributemaps/basic.py b/tests/attributemaps/basic.py
index 9311d547..f76ec68c 100644
--- a/tests/attributemaps/basic.py
+++ b/tests/attributemaps/basic.py
@@ -323,4 +323,4 @@ MAP = {
'x121Address': 'urn:mace:dir:attribute-def:x121Address',
'x500UniqueIdentifier': 'urn:mace:dir:attribute-def:x500UniqueIdentifier',
}
-} \ No newline at end of file
+}
diff --git a/tests/attributemaps/saml_uri.py b/tests/attributemaps/saml_uri.py
index 1c9d3730..990c61aa 100644
--- a/tests/attributemaps/saml_uri.py
+++ b/tests/attributemaps/saml_uri.py
@@ -196,4 +196,4 @@ MAP = {
'labeledURI': UMICH+'57',
'uid': UCL_DIR_PILOT+'1'
}
-} \ No newline at end of file
+}
diff --git a/tests/attributemaps/shibboleth_uri.py b/tests/attributemaps/shibboleth_uri.py
index d26bf006..002a8fec 100644
--- a/tests/attributemaps/shibboleth_uri.py
+++ b/tests/attributemaps/shibboleth_uri.py
@@ -187,4 +187,4 @@ MAP = {
'sn': X500ATTR+'4',
'domainComponent': UCL_DIR_PILOT+'25',
}
-} \ No newline at end of file
+}
diff --git a/tests/ecp_soap.xml b/tests/ecp_soap.xml
index 4fa32f85..dbe07d30 100644
--- a/tests/ecp_soap.xml
+++ b/tests/ecp_soap.xml
@@ -25,4 +25,4 @@
<ns0:Body>
<ns3:AuthnRequest/>
</ns0:Body>
-</ns0:Envelope> \ No newline at end of file
+</ns0:Envelope>
diff --git a/tests/edugain.pem b/tests/edugain.pem
index 1f40b87d..5a734744 100644
--- a/tests/edugain.pem
+++ b/tests/edugain.pem
@@ -12,4 +12,4 @@ w9NTEImw8CmUzzzmMd7TBM2epwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAJpIWdXn
FL/j9Cm/Pdn6Yoxkf1mWy8L8WSwF8j9xfkvp53/GMd9IFkgkBbZo+F9CDH2la6H3
vseA3ZJrXrxSn5RBhI5XJ85DGfdcMYJy3K42Y6mAUghVv1n+rf39w/cyuSRIW0IY
XE3ANufnryezpDUffXpzdUltuTCpu2qfKEj2
------END CERTIFICATE----- \ No newline at end of file
+-----END CERTIFICATE-----
diff --git a/tests/enc_tmpl.xml b/tests/enc_tmpl.xml
index 599a9435..71149672 100644
--- a/tests/enc_tmpl.xml
+++ b/tests/enc_tmpl.xml
@@ -19,4 +19,4 @@
<ns0:CipherData>
<ns0:CipherValue/>
</ns0:CipherData>
-</ns0:EncryptedData> \ No newline at end of file
+</ns0:EncryptedData>
diff --git a/tests/fakeIDP.py b/tests/fakeIDP.py
index 3114704b..3fd25a73 100644
--- a/tests/fakeIDP.py
+++ b/tests/fakeIDP.py
@@ -187,4 +187,4 @@ class FakeIDP(Server):
else: # Just POST
response = "%s" % _resp
- return DummyResponse(200, response) \ No newline at end of file
+ return DummyResponse(200, response)
diff --git a/tests/get_metadata.sh b/tests/get_metadata.sh
index ddef9c10..ce41c29d 100755
--- a/tests/get_metadata.sh
+++ b/tests/get_metadata.sh
@@ -1,2 +1,2 @@
curl -G -O http://md.incommon.org/InCommon/InCommon-metadata.xml
-curl -G -O http://metadata.aai.switch.ch/metadata.aaitest.xml \ No newline at end of file
+curl -G -O http://metadata.aai.switch.ch/metadata.aaitest.xml
diff --git a/tests/kalmar2.pem b/tests/kalmar2.pem
index 18ad9634..5ea32a2c 100644
--- a/tests/kalmar2.pem
+++ b/tests/kalmar2.pem
@@ -15,4 +15,4 @@ EgYDVQQDEwtrYWxtYXIyLm9yZ4IJALIv7VqXanQYMAwGA1UdEwQFMAMBAf8wDQYJ
KoZIhvcNAQEFBQADgYEALx5V6xKtPr7urC/QOWiHxUChQO+SJsbnlwIquwaEGgUf
0WrGidPu04zdv+VpKtR+/KZbIDuSWx0/AkbexiE9ZUzJ2GvdVSxr/uON9CtQIQTp
5WjZD0KaieaoIMy/w5shc+trjkV550g/MWFFqAjproXwHRrEQoAxWL0smtR1R/I=
------END CERTIFICATE----- \ No newline at end of file
+-----END CERTIFICATE-----
diff --git a/tests/pre_enc.xml b/tests/pre_enc.xml
index d7e4672b..cb50b091 100644
--- a/tests/pre_enc.xml
+++ b/tests/pre_enc.xml
@@ -71,4 +71,4 @@
</ns1:AttributeStatement>
</ns1:Assertion>
</ns1:EncryptedAssertion>
-</ns0:Response> \ No newline at end of file
+</ns0:Response>
diff --git a/tests/pubkey.pem b/tests/pubkey.pem
index 8ec6eca9..1e14aca2 100644
--- a/tests/pubkey.pem
+++ b/tests/pubkey.pem
@@ -17,4 +17,4 @@ vvjpFAcbu/ILfzsXk19zKInCXmFWW5UNl2iq9GRCKltMyWZ/8m74cZpm1X3x4u33
u+VTbtj/ZeTzqsriFfXo2q8EsdEK+27tvluNbdUgEayz8YIFrLI9LJRlWH6X6BWh
PbIrR0sd263vE/1fgWbeB66CRXys0oQ92k9arc+gkVB2hZ8o4BK82LkwO30Ueo+l
oHJ24vcX55P2LXmP+x+hIjMXICkqly0QE7kUVUVBisQ=
------END CERTIFICATE----- \ No newline at end of file
+-----END CERTIFICATE-----
diff --git a/tests/simplesamlphp_authnresponse.xml b/tests/simplesamlphp_authnresponse.xml
index 93b2a615..1d38bd50 100644
--- a/tests/simplesamlphp_authnresponse.xml
+++ b/tests/simplesamlphp_authnresponse.xml
@@ -101,4 +101,4 @@
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
-</samlp:Response> \ No newline at end of file
+</samlp:Response>
diff --git a/tests/swamid.md b/tests/swamid.md
index a0db73d3..24d69870 100644
--- a/tests/swamid.md
+++ b/tests/swamid.md
@@ -118659,4 +118659,4 @@
}
}
]
-] \ No newline at end of file
+]
diff --git a/tests/test_01_xmlenc.py b/tests/test_01_xmlenc.py
index b07d276f..6bb20f51 100644
--- a/tests/test_01_xmlenc.py
+++ b/tests/test_01_xmlenc.py
@@ -206,4 +206,4 @@ def test_6():
assert tr.algorithm == "http://www.w3.org/TR/1999/REC-xpath-19991116"
assert len(tr.x_path) == 1
assert tr.x_path[0].text.strip() == """self::xenc:EncryptedData[@Id="example1"]"""
- \ No newline at end of file
+
diff --git a/tests/test_13_validate.py b/tests/test_13_validate.py
index 0364ff88..36f66c4a 100644
--- a/tests/test_13_validate.py
+++ b/tests/test_13_validate.py
@@ -103,5 +103,4 @@ def test_valid_anytype():
assert valid_anytype("-1234")
assert valid_anytype("P1Y2M3DT10H30M")
assert valid_anytype("urn:oasis:names:tc:SAML:2.0:attrname-format:uri")
-
- \ No newline at end of file
+
diff --git a/tests/test_20_assertion.py b/tests/test_20_assertion.py
index 21ff1ff1..5826d5fe 100644
--- a/tests/test_20_assertion.py
+++ b/tests/test_20_assertion.py
@@ -797,4 +797,4 @@ def test_assertion_with_authn_instant():
if __name__ == "__main__":
- test_assertion_2() \ No newline at end of file
+ test_assertion_2()
diff --git a/tests/test_31_config.py b/tests/test_31_config.py
index 043fa121..245714b3 100644
--- a/tests/test_31_config.py
+++ b/tests/test_31_config.py
@@ -368,4 +368,4 @@ def test_assertion_consumer_service():
"location"] == 'https://www.zimride.com/Shibboleth.sso/SAML2/POST'
if __name__ == "__main__":
- test_1() \ No newline at end of file
+ test_1()
diff --git a/tests/test_32_cache.py b/tests/test_32_cache.py
index 81a413f6..0cb27726 100644
--- a/tests/test_32_cache.py
+++ b/tests/test_32_cache.py
@@ -121,5 +121,4 @@ class TestClass:
(ava, inactive) = self.cache.get_identity(nid[2])
assert inactive == ["bcde"]
assert ava == {}
-
- \ No newline at end of file
+
diff --git a/tests/test_34_population.py b/tests/test_34_population.py
index a4094289..ebe084b7 100644
--- a/tests/test_34_population.py
+++ b/tests/test_34_population.py
@@ -172,4 +172,4 @@ class TestPopulationMemoryBased():
info = self.population.get_info_from(nid, IDP_OTHER)
assert info.keys() == ["not_on_or_after", "name_id", "ava"]
assert info["name_id"] == nid
- assert info["ava"] == {"eduPersonEntitlement": "Anka"} \ No newline at end of file
+ assert info["ava"] == {"eduPersonEntitlement": "Anka"}
diff --git a/tests/test_37_entity_categories.py b/tests/test_37_entity_categories.py
index e62118bc..80228e8f 100644
--- a/tests/test_37_entity_categories.py
+++ b/tests/test_37_entity_categories.py
@@ -164,4 +164,4 @@ def test_idp_policy_filter():
assert ava.keys() == ["eduPersonTargetedID"] # because no entity category
if __name__ == "__main__":
- test_idp_policy_filter() \ No newline at end of file
+ test_idp_policy_filter()
diff --git a/tests/test_41_response.py b/tests/test_41_response.py
index 1fdd2564..ef8d4d32 100644
--- a/tests/test_41_response.py
+++ b/tests/test_41_response.py
@@ -104,4 +104,4 @@ class TestResponse:
if __name__ == "__main__":
t = TestResponse()
t.setup_class()
- t.test_1() \ No newline at end of file
+ t.test_1()
diff --git a/tests/test_42_enc.py b/tests/test_42_enc.py
index 1a73b834..e9242ebd 100644
--- a/tests/test_42_enc.py
+++ b/tests/test_42_enc.py
@@ -96,4 +96,4 @@ def test_enc2():
assert enc_resp
if __name__ == "__main__":
- test_enc1() \ No newline at end of file
+ test_enc1()
diff --git a/tests/test_50_server.py b/tests/test_50_server.py
index 6b299f9c..05544676 100644
--- a/tests/test_50_server.py
+++ b/tests/test_50_server.py
@@ -502,4 +502,4 @@ class TestServerLogout():
if __name__ == "__main__":
ts = TestServer1()
ts.setup_class()
- ts.test_sso_response_specific_instant() \ No newline at end of file
+ ts.test_sso_response_specific_instant()
diff --git a/tests/test_65_authn_query.py b/tests/test_65_authn_query.py
index bafc7995..94f3b3e4 100644
--- a/tests/test_65_authn_query.py
+++ b/tests/test_65_authn_query.py
@@ -139,4 +139,4 @@ def test_flow():
assert final.response.id == p_res.id
if __name__ == "__main__":
- test_flow() \ No newline at end of file
+ test_flow()
diff --git a/tests/test_66_name_id_mapping.py b/tests/test_66_name_id_mapping.py
index 1f2654bd..3e1da836 100644
--- a/tests/test_66_name_id_mapping.py
+++ b/tests/test_66_name_id_mapping.py
@@ -70,4 +70,4 @@ def test_request_response():
r_name_id = _resp.response.name_id
assert r_name_id.format == NAMEID_FORMAT_PERSISTENT
- assert r_name_id.text == "foobar" \ No newline at end of file
+ assert r_name_id.text == "foobar"
diff --git a/tests/test_67_manage_name_id.py b/tests/test_67_manage_name_id.py
index 32990e5b..7669744b 100644
--- a/tests/test_67_manage_name_id.py
+++ b/tests/test_67_manage_name_id.py
@@ -71,4 +71,4 @@ def test_flow():
print _response.response
- assert _response.response.id == mnir.id \ No newline at end of file
+ assert _response.response.id == mnir.id
diff --git a/tests/test_68_assertion_id.py b/tests/test_68_assertion_id.py
index 0582fd41..ec3a55fb 100644
--- a/tests/test_68_assertion_id.py
+++ b/tests/test_68_assertion_id.py
@@ -108,4 +108,4 @@ def test_basic_flow():
final = sp.parse_assertion_id_request_response(xmlstr, binding)
print final.response
- assert isinstance(final.response, Assertion) \ No newline at end of file
+ assert isinstance(final.response, Assertion)
diff --git a/tests/test_69_discovery.py b/tests/test_69_discovery.py
index 7a14d3ea..807ebc8f 100644
--- a/tests/test_69_discovery.py
+++ b/tests/test_69_discovery.py
@@ -70,4 +70,4 @@ def test_construct_deconstruct_response():
if __name__ == "__main__":
- test_construct_deconstruct_response() \ No newline at end of file
+ test_construct_deconstruct_response()
diff --git a/tests/test_72_eptid.py b/tests/test_72_eptid.py
index ea95d892..010df88d 100644
--- a/tests/test_72_eptid.py
+++ b/tests/test_72_eptid.py
@@ -38,4 +38,4 @@ def test_eptid_shelve():
if __name__ == "__main__":
- test_eptid_shelve() \ No newline at end of file
+ test_eptid_shelve()
diff --git a/tests/test_77_authn_context.py b/tests/test_77_authn_context.py
index 9ab058eb..cc0f3551 100644
--- a/tests/test_77_authn_context.py
+++ b/tests/test_77_authn_context.py
@@ -149,4 +149,4 @@ def test_authn_3():
if __name__ == "__main__":
- test_authn_3() \ No newline at end of file
+ test_authn_3()
diff --git a/tests/test_81_certificates.py b/tests/test_81_certificates.py
index b8d48982..88a43120 100644
--- a/tests/test_81_certificates.py
+++ b/tests/test_81_certificates.py
@@ -220,4 +220,4 @@ class TestGenerateCertificates(unittest.TestCase):
cert_str = osw.create_cert_signed_certificate(ca_cert_str, ca_key_str, req_cert_str, valid_from=0, valid_to=1)
time.sleep(2)
valid, mess = osw.verify(ca_cert_str, cert_str)
- self.assertFalse(valid) \ No newline at end of file
+ self.assertFalse(valid)
diff --git a/tests/test_82_pefim.py b/tests/test_82_pefim.py
index 79e34b16..a580f270 100644
--- a/tests/test_82_pefim.py
+++ b/tests/test_82_pefim.py
@@ -48,4 +48,4 @@ _elem = extension_elements_to_elements(parsed.extensions.extension_elements,
assert len(_elem) == 1
_spcertenc = _elem[0]
_cert = _spcertenc.x509_data[0].x509_certificate.text
-assert cert == _cert \ No newline at end of file
+assert cert == _cert
diff --git a/tools/parse_xsd2.py b/tools/parse_xsd2.py
index 844ac99a..e51671ef 100755
--- a/tools/parse_xsd2.py
+++ b/tools/parse_xsd2.py
@@ -87,7 +87,7 @@ def base_init(imports):
line.append("%s%s=%s," % (indent4, _name, _name))
line.append("%s)" % indent4)
else:
- # TODO have to keep apart which properties comes from which superior
+ # TODO have to keep apart which properties come from which superior
for sup, elems in imports.items():
line.append("%s%s.__init__(self, " % (INDENT+INDENT, sup))
lattr = elems[:]
@@ -2187,5 +2187,3 @@ def main(argv):
if __name__ == "__main__":
main(sys.argv[1:])
-
- \ No newline at end of file