Thu May 11 13:05:49 PDT 2006  Kevin Turner <kevin@janrain.com>
  * test.consumer: added tests for consumer.consumer.GenericConsumer._checkNonce
  
  This replaces test.consumer.NonceIdResTest, which was not actually testing
  anything related to nonces at all.  (While it's true that each attempt was
  resulting in a Failure result, the failure was due to the lack of a signature,
  and not anything to do with the properties of the nonces.)
  
  I didn't preserve test_twoNonce, shout if that's a problem.

    M ./openid/test/consumer.py -43 +41

Thu May 11 10:31:26 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Added more tests for behaviours of Consumer.complete and a little bit of begin()

    M ./openid/test/consumer.py -13 +99

Wed May 10 17:08:36 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Added rudimentary tests for Consumer (not GenericConsumer)

    M ./openid/test/consumer.py -1 +51

Wed May 10 16:44:38 PDT 2006  Josh Hoyt <josh@janrain.com>
  * whitespace

    M ./openid/consumer/consumer.py -1 +1

Wed May 10 16:03:47 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Added _parseAssociation tests for GenericConsumer

    M ./openid/consumer/consumer.py -2 +1
    M ./openid/test/consumer.py -1 +79

Wed May 10 15:31:49 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Added openid.consumer.consumer.SuccessResponse test case

    M ./openid/test/consumer.py -1 +23

Wed May 10 15:19:41 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Added more consumer tests, esp for GenericConsumer.complete and GenericConsumer._processCheckAuthResponse.

    M ./openid/test/consumer.py -3 +129

Wed May 10 15:16:40 PDT 2006  Josh Hoyt <josh@janrain.com>
  * whitespace

    M ./openid/store/interface.py -1

Wed May 10 15:15:13 PDT 2006  Josh Hoyt <josh@janrain.com>
  * BUGFIX: #1001 invalidate_handle when is_valid is false

    M ./openid/consumer/consumer.py -7 +7

Wed May 10 14:20:12 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Added test cases for GenericConsumer.complete
  
  * Test error and cancel modes
  * Test bad token

    M ./openid/test/consumer.py +23

Wed May 10 13:39:03 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Change data driven test helper to avoid having a method called runTest so that the unit test framework does not attempt to instantiate the data-driven tests

    M ./openid/test/association.py -2 +2
    M ./openid/test/datadriven.py -1 +1
    M ./openid/test/test_discover.py -2 +2
    M ./openid/test/test_htmldiscover.py -1 +1

Wed May 10 13:27:25 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Add test for different association session types and convert association serialization test to unittest

    M ./admin/runtests -1 +2
    M ./openid/test/association.py -8 +70

Wed May 10 13:04:16 PDT 2006  Kevin Turner <kevin@janrain.com>
  * openid.test.consumer: add TestAuthRequest

    M ./openid/test/consumer.py -1 +24

Wed May 10 13:03:37 PDT 2006  Kevin Turner <kevin@janrain.com>
  * ignore _trial_temp

    M ./darcs-ignore +2

Wed May 10 10:27:15 PDT 2006  cygnus@janrain.com
  * BUGFIX: Fixed join() syntax in addExtensionArg

    M ./openid/consumer/consumer.py -1 +1

Tue May  9 14:41:55 PDT 2006  cygnus@janrain.com
  * Fixed Consumer docstring regarding redirectURL

    M ./openid/consumer/consumer.py -6 +6

Tue May  9 17:47:06 PDT 2006  Kevin Turner <kevin@janrain.com>
  tagged release-1.1.0


Tue May  9 17:46:51 PDT 2006  Kevin Turner <kevin@janrain.com>
  * Set version number to 1.1.0

    M ./openid/__init__.py -1 +1
    M ./setup.py -1 +1

Tue May  9 17:33:15 PDT 2006  Kevin Turner <kevin@janrain.com>
  tagged release-1.1.0-rc2


Tue May  9 17:33:00 PDT 2006  Kevin Turner <kevin@janrain.com>
  * Set version number to 1.1.0-rc2

    M ./openid/__init__.py -1 +1
    M ./setup.py -1 +1

Tue May  9 17:24:53 PDT 2006  Kevin Turner <kevin@janrain.com>
  * examples/server.py: use simpler form for setup_url with immediate mode

    M ./examples/server.py -5 +2

Tue May  9 16:57:05 PDT 2006  Kevin Turner <kevin@janrain.com>
  tagged release-1.1.0-rc1


Tue May  9 16:56:50 PDT 2006  Kevin Turner <kevin@janrain.com>
  * Set version number to 1.1.0-rc1

    M ./openid/__init__.py -1 +1
    M ./setup.py -1 +1

Tue May  9 16:55:38 PDT 2006  Kevin Turner <kevin@janrain.com>
  * admin/tagrelease: release tags are prefixed with "release-"

    M ./admin/tagrelease -1 +1

Tue May  9 16:25:54 PDT 2006  Kevin Turner <kevin@janrain.com>
  * consumer.consumer: doc typo

    M ./openid/consumer/consumer.py -1 +1

Tue May  9 16:25:28 PDT 2006  Kevin Turner <kevin@janrain.com>
  * consumer.consumer: doc typo

    M ./openid/consumer/consumer.py -1 +1

Tue May  9 16:25:06 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server: doc typo

    M ./openid/server/server.py -1 +1

Tue May  9 16:02:58 PDT 2006  Kevin Turner <kevin@janrain.com>
  * NEWS: Upgrading: Servers, clear your store.

    M ./NEWS +9

Tue May  9 16:00:39 PDT 2006  Kevin Turner <kevin@janrain.com>
  * NEWS: Server API

    M ./NEWS +9

Tue May  9 16:00:00 PDT 2006  Kevin Turner <kevin@janrain.com>
  * NEWS: reflow

    M ./NEWS -8 +8

Tue May  9 15:59:00 PDT 2006  Kevin Turner <kevin@janrain.com>
  * NEWS.urljr: s/store/fetcher/

    M ./NEWS -3 +3

Tue May  9 15:58:04 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.DiffieHellmanServerSession: raise ProtocolError, not ValueError

    M ./openid/server/server.py -7 +7

Tue May  9 14:39:39 PDT 2006  cygnus@janrain.com
  * Fixed docstring Consumer regarding session object

    M ./openid/consumer/consumer.py -8 +11

Tue May  9 14:09:19 PDT 2006  dag@janrain.com
  * trust_root default to return_to in fromQuery

    M ./openid/server/server.py -1 +1

Tue May  9 11:12:51 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Added meat to NEWS file

    M ./NEWS -18 +65

Tue May  9 10:30:33 PDT 2006  Kevin Turner <kevin@janrain.com>
  * consumer.consumer.SuccessResponse.getReturnTo: have accessor return None instead of raising KeyError
  
  because KeyError is just weird for an accessor.

    M ./openid/consumer/consumer.py -7 +5

Tue May  9 10:26:08 PDT 2006  Kevin Turner <kevin@janrain.com>
  * consumer.consumer.Consumer.begin: epydoc fix on @raises

    M ./openid/consumer/consumer.py -3 +4

Mon May  8 15:13:52 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Add documentation for addExtensionArg

    M ./openid/consumer/consumer.py +24

Mon May  8 15:06:18 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Change the module documentation to match the requirement for sessions and other small usage changes

    M ./openid/consumer/consumer.py -23 +17

Mon May  8 14:46:23 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Further consumer documentation cleanup and cross-referencing

    M ./openid/consumer/consumer.py -33 +36

Mon May  8 14:28:31 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Documentation cleanup (adding links, fixing names)

    M ./openid/consumer/consumer.py -20 +17

Mon May  8 14:06:06 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Document Consumer.complete and the response objects

    M ./openid/consumer/consumer.py +85

Mon May  8 13:49:51 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Export constant names in __all__ from consumer module

    M ./openid/consumer/consumer.py -1 +3

Mon May  8 13:45:27 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Add missing import of DiscoveryFailure

    M ./openid/consumer/consumer.py -1 +1

Mon May  8 13:29:23 PDT 2006  Josh Hoyt <josh@janrain.com>
  * reinstate the constants used for status on the consumer's response objects

    M ./examples/consumer.py -3 +3
    M ./openid/consumer/consumer.py -4 +9
    M ./openid/test/consumer.py -8 +9

Mon May  8 13:12:50 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Add documentation for Consumer.beginWithoutDiscovery and change the parameter name to match the Ruby library

    M ./openid/consumer/consumer.py -9 +27

Mon May  8 13:03:51 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Add documentation for Consumer.begin and make it raise DiscoveryFailure whenever it fails.

    M ./openid/consumer/consumer.py -1 +33

Fri May  5 15:11:58 PDT 2006  Kevin Turner <kevin@janrain.com>
  * s/OpenIDConsumerResponse/Response/

    M ./openid/consumer/consumer.py r1

Fri May  5 15:10:08 PDT 2006  Kevin Turner <kevin@janrain.com>
  * s/OpenIDAuthRequest/AuthRequest/

    M ./openid/consumer/consumer.py r1

Fri May  5 15:08:32 PDT 2006  Kevin Turner <kevin@janrain.com>
  * s/GenericOpenIDConsumer/GenericConsumer/

    M ./openid/consumer/consumer.py -1 +1 r1
    M ./openid/test/consumer.py r1

Fri May  5 14:59:21 PDT 2006  Kevin Turner <kevin@janrain.com>
  * s/OpenIDConsumer/Consumer/

    M ./examples/consumer.py -1 +1 r1
    M ./openid/consumer/consumer.py -2 +2 r1
    M ./openid/test/consumer.py r1

Tue May  9 10:31:28 PDT 2006  Kevin Turner <kevin@janrain.com>
  * consumer.discover.DiscoveryFailure: slightly more useful docstring.

    M ./openid/consumer/discover.py -1 +4

Mon May  8 13:03:04 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.DiffieHellmanServerSession: docstring tweaks

    M ./openid/server/server.py -4 +5

Mon May  8 11:03:16 PDT 2006  Kevin Turner <kevin@janrain.com>
  * consumer.consumer.GenericConsumer.complete: raise TypeError when query contains lists.  For #819.

    M ./openid/consumer/consumer.py +4
    M ./openid/test/consumer.py +12

Mon May  8 11:01:08 PDT 2006  Kevin Turner <kevin@janrain.com>
  * consumer.consumer: add test-case-name

    M ./openid/consumer/consumer.py +1

Fri May  5 14:04:00 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Documentation for OpenID Consumer and OpenID Consumer.__init__

    M ./openid/consumer/consumer.py +21

Fri May  5 15:17:56 PDT 2006  Kevin Turner <kevin@janrain.com>
  * s/OpenIDServer/Server/

    M ./examples/server.py -1 +1
    M ./openid/server/server.py r1
    M ./openid/test/server.py r1

Fri Apr 28 14:16:23 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Update version information setting script and format of the token to replace

    M ./admin/setversion -1 +6
    A ./admin/tagrelease
    M ./openid/__init__.py -1 +1
    M ./setup.py -1 +1

Fri May  5 13:36:36 PDT 2006  Kevin Turner <kevin@janrain.com>
  * admin/combo-setup.py: added
  
  for invoking setup.py in urljr, yadis, and openid

    A ./admin/combo-setup.py

Fri May  5 10:07:18 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.ProtocolError.encodeToURL: parameter's name is openid.error

    M ./openid/server/server.py -1 +2
    M ./openid/test/server.py -1 +1

Wed May  3 15:45:06 PDT 2006  Kevin Turner <kevin@janrain.com>
  * consumer.consumer.GenericOpenIDConsumer._parseAssociation: s/PlainTextSession/PlainTextConsumerSession/
  (static analysis caught this.)
  (this code does not have unit test coverage.)

    M ./openid/consumer/consumer.py -1 +2

Wed May  3 15:43:11 PDT 2006  Kevin Turner <kevin@janrain.com>
  * consumer.DiffieHellmanConsumerSession.getRequest: dh should be "self.dh" here,
  as "dh" is not defined in that scope.
  (static analysis caught this.)
  (this code does not have unit test coverage.)

    M ./openid/consumer/consumer.py -2 +2

Tue May  2 12:32:11 PDT 2006  cygnus@janrain.com
  * FIX: Added server_url parameter to _processCheckAuthResponse

    M ./openid/consumer/consumer.py -2 +2

Fri Apr 28 18:10:30 PDT 2006  Kevin Turner <kevin@janrain.com>
  tagged release-1.2.0pre1


Fri Apr 28 18:08:47 PDT 2006  Kevin Turner <kevin@janrain.com>
  * remove examples/newapi.py

    R ./examples/newapi.py

Fri Apr 28 17:59:29 PDT 2006  Kevin Turner <kevin@janrain.com>
  * update distutils things for admin/ and test/ move

    M ./MANIFEST.in -2 +3
    M ./setup.py -1 +1

Fri Apr 28 17:53:30 PDT 2006  Kevin Turner <kevin@janrain.com>
  * README: use dev@lists for contact address

    M ./README -1 +1

Fri Apr 28 11:09:54 PDT 2006  Kevin Turner <kevin@janrain.com>
  * move test/ to openid.test.  For #967

     ./test/runtests -> ./admin/runtests
     ./test -> ./openid/test
    M ./admin/runtests -9 +10
    A ./openid/test/__init__.py

Fri Apr 28 11:01:57 PDT 2006  Kevin Turner <kevin@janrain.com>
  * move scripts in to admin/

     ./makechangelog -> ./admin/makechangelog
     ./makedoc -> ./admin/makedoc
     ./setversion -> ./admin/setversion
    A ./admin/

Thu Apr 27 14:48:48 PDT 2006  dag@janrain.com
  * trust_root defaults to return_to

    M ./openid/server/server.py -1 +1

Thu Apr 27 14:39:09 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Added script to set the version number of the library

    A ./setversion

Thu Apr 27 14:32:08 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Set the version string to a placeholder and add version_info to the openid package

    M ./openid/__init__.py +13
    M ./setup.py -1 +1

Thu Apr 27 14:20:46 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Make the examples tell the user about installing the library if it cannot be imported.

    M ./examples/consumer.py -5 +13
    M ./examples/server.py +14

Thu Apr 27 14:12:18 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Call Exception constructor for EncodingError in server

    M ./openid/server/server.py +1

Thu Apr 27 14:11:21 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Fix consumer session cleanup code

    M ./openid/consumer/consumer.py -8 +11

Thu Apr 27 14:10:10 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Use the proper session namespace for the Yadis discovery object used by the OpenID consumer

    M ./openid/consumer/consumer.py -1 +3

Thu Apr 27 14:08:23 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Improve the server example's text for requests to the endpoint URL with no openid arguments

    M ./examples/server.py -5 +29

Thu Apr 27 14:07:42 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Make the example server properly handle ProtocolError and cases with no OpenID arguments.

    M ./examples/server.py -2 +18

Wed Apr 26 16:40:51 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.OpenIDResponse: add needsSigning, fold in addFields methods from CheckIDResponse,
  remove CheckIDResponse subclass.

    M ./openid/server/server.py -94 +73
    M ./test/server.py -12 +21

Wed Apr 26 16:21:30 PDT 2006  Kevin Turner <kevin@janrain.com>
  * whitespace

    M ./test/server.py -1 +1

Wed Apr 26 16:08:24 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Abstract out association session types

    M ./openid/consumer/consumer.py -77 +109
    M ./openid/cryptutil.py -8 +1
    M ./openid/dh.py -28 +14
    M ./openid/oidutil.py -2 +3
    M ./openid/server/server.py -85 +123
    M ./test/consumer.py -20 +12
    M ./test/cryptutil.py -36
    M ./test/dh.py -6 +45
    M ./test/server.py -14 +16

Wed Apr 26 16:06:47 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Whitespace

    M ./openid/association.py -1 +1

Wed Apr 26 14:48:55 PDT 2006  Kevin Turner <kevin@janrain.com>
  * resolve conflict

    M ./test/consumer.py -2 +3

Wed Apr 26 11:58:50 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Add tests for bad nonces

    M ./test/consumer.py +57

Wed Apr 26 11:46:42 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Added nonce to return_to to fix replay attack vulnerability

    M ./openid/consumer/consumer.py -12 +43
    M ./test/consumer.py -3 +6

Wed Apr 26 11:45:42 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Fix OpenIDAuthRequest.fromQuery's signed argument extraction

    M ./openid/consumer/consumer.py +1

Mon Apr 24 12:01:20 PDT 2006  chowells@janrain.com
  * remove sort tag in docs for the time being.

    M ./openid/consumer/consumer.py -3

Mon Apr 24 11:52:11 PDT 2006  chowells@janrain.com
  * Hey look, those don't exist anymore, anyway. Remove docs.

    M ./openid/consumer/consumer.py -13 +1

Mon Apr 24 11:24:39 PDT 2006  chowells@janrain.com
  * Simplified docs for setup needed case.

    M ./openid/consumer/consumer.py -5 +3

Mon Apr 24 11:11:39 PDT 2006  chowells@janrain.com
  * Simplify failure documentation

    M ./openid/consumer/consumer.py -3 +1

Mon Apr 24 11:04:51 PDT 2006  chowells@janrain.com
  * Add docs for cancelled flag

    M ./openid/consumer/consumer.py -1 +4

Mon Apr 24 11:03:25 PDT 2006  chowells@janrain.com
  * Removed unused flags from the docs

    M ./openid/consumer/consumer.py -12 +1

Mon Apr 24 11:02:21 PDT 2006  chowells@janrain.com
  * Simplify docs for SUCCESS flag

    M ./openid/consumer/consumer.py -5 +1

Mon Apr 24 10:55:30 PDT 2006  chowells@janrain.com
  * Remove placeholders from use section of docs

    M ./openid/consumer/consumer.py -15 +12

Fri Apr 21 11:39:28 PDT 2006  chowells@janrain.com
  * Rewording docs

    M ./openid/consumer/consumer.py -4 +4

Fri Apr 21 11:25:56 PDT 2006  chowells@janrain.com
  * Update docs to describe how yadis is used

    M ./openid/consumer/consumer.py -3 +2

Thu Apr 20 16:19:29 PDT 2006  chowells@janrain.com
  * Replace long less-accurate docs with shorter ones

    M ./openid/consumer/consumer.py -14 +4

Thu Apr 20 15:42:05 PDT 2006  chowells@janrain.com
  * Add a paragraph to docs

    M ./openid/consumer/consumer.py +6

Thu Apr 20 15:41:49 PDT 2006  chowells@janrain.com
  * properly format doc display

    M ./openid/consumer/consumer.py -1 +1

Thu Apr 20 15:10:02 PDT 2006  chowells@janrain.com
  * remove outdated paragraph

    M ./openid/consumer/consumer.py -8

Thu Apr 20 14:05:16 PDT 2006  chowells@janrain.com
  * reword paragraph

    M ./openid/consumer/consumer.py -3 +3

Thu Apr 20 10:57:29 PDT 2006  chowells@janrain.com
  * reword docs

    M ./openid/consumer/consumer.py -3 +4

Thu Apr 20 10:54:43 PDT 2006  chowells@janrain.com
  * Reword and simplify doc

    M ./openid/consumer/consumer.py -4 +2

Thu Apr 20 10:50:04 PDT 2006  chowells@janrain.com
  * update and clarify doc paragraph

    M ./openid/consumer/consumer.py -10 +7

Thu Apr 20 10:49:20 PDT 2006  chowells@janrain.com
  * Fix class name in docs

    M ./openid/consumer/consumer.py -1 +1

Thu Apr 20 10:45:13 PDT 2006  chowells@janrain.com
  * Remove doc paragraph

    M ./openid/consumer/consumer.py -9

Thu Apr 20 10:43:33 PDT 2006  chowells@janrain.com
  * Add a sentence to the docs

    M ./openid/consumer/consumer.py -1 +2

Thu Apr 20 10:41:04 PDT 2006  chowells@janrain.com
  * Add a doc paragraph

    M ./openid/consumer/consumer.py +11

Thu Apr 13 18:50:54 PDT 2006  chowells@janrain.com
  * enhance discovery placeholder

    M ./openid/consumer/consumer.py -1 +3

Wed Apr 12 16:16:31 PDT 2006  chowells@janrain.com
  * Placeholder for discovery

    M ./openid/consumer/consumer.py -7 +1

Tue Apr 11 13:20:26 PDT 2006  chowells@janrain.com
  * Simplify included store descriptions

    M ./openid/consumer/consumer.py -2 +2

Fri Apr 21 16:10:07 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Add log message when library is operating without Yadis sup

    M ./openid/consumer/discover.py +6

Fri Apr 21 16:05:55 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Make consumer work in the absense of Yadis

    M ./openid/consumer/consumer.py -5 +15

Fri Apr 21 16:05:33 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Remove unused import from consumer test

    M ./test/consumer.py -2

Fri Apr 21 15:56:09 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Make the discover module function with and without Yadis.

    M ./openid/consumer/discover.py -20 +49

Fri Apr 21 11:53:06 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.OpenIDServer.handleRequest: small bugfix for unhandled request types

    M ./openid/server/server.py -1 +1

Fri Apr 21 11:36:54 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckAuthRequest.fromQuery: add comment linking to Brad's "check_authentication is weird" post

    M ./openid/server/server.py +1

Thu Apr 20 15:48:06 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Handle DiscoveryFailure from Yadis library in consumer example

    M ./examples/consumer.py +7

Thu Apr 20 15:36:11 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Update consumer example to use new session-based API

    M ./examples/consumer.py -16 +9

Thu Apr 20 15:35:31 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Fix invocation of normalizeUrl from session OpenID consumer

    M ./openid/consumer/consumer.py -1 +1

Thu Apr 20 15:34:57 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Fix session OpenID consumer's use of _token name

    M ./openid/consumer/consumer.py -1 +1

Thu Apr 20 15:19:24 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Split out session management from OpenID logic

    M ./openid/consumer/consumer.py -139 +80
    M ./test/consumer.py -24 +14

Thu Apr 20 14:23:47 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Re-name sessionKeyPrefix attribute to be more consistent with library style

    M ./openid/consumer/consumer.py -3 +3

Thu Apr 20 14:13:06 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Add tests for fetchers raising exceptions and for bug in check_authentication request building

    M ./test/consumer.py +37

Thu Apr 20 14:12:30 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Remove session-related cruft from tests

    M ./test/consumer.py -4 +1

Thu Apr 20 14:11:42 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Remove unused equality checking methods

    M ./openid/consumer/consumer.py -7

Thu Apr 20 13:53:43 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Catch HTTPFetchingErrors when they are raised

    M ./openid/consumer/consumer.py -3 +13

Thu Apr 20 13:47:12 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Move response objects and make them have a common superclass. Also rename CancelledResponse to CancelResponse

    M ./openid/consumer/consumer.py -48 +52

Thu Apr 20 13:39:31 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Use ValueError in _splitToken to indicate failure

    M ./openid/consumer/consumer.py -20 +19

Thu Apr 20 13:32:30 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Move _createNonce method

    M ./openid/consumer/consumer.py -5 +5

Thu Apr 20 13:31:49 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Remove unused method (_constructRedirect)

    M ./openid/consumer/consumer.py -21

Thu Apr 20 13:31:19 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Remove unused class attributes from consumer

    M ./openid/consumer/consumer.py -3

Thu Apr 20 13:23:20 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Added comment in _checkAuth

    M ./openid/consumer/consumer.py +2

Thu Apr 20 13:15:33 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Pass session in as argument to consumer's methods (sync up with Ruby API)

    M ./examples/consumer.py -5 +3
    M ./openid/consumer/consumer.py -8 +6
    M ./test/consumer.py -9 +7

Thu Apr 20 13:09:10 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Add extension argument handling to SuccessResponse

    M ./openid/consumer/consumer.py -4 +25

Thu Apr 20 11:53:06 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Update consumer example to use status objects instead of tuples

    M ./examples/consumer.py -19 +16

Thu Apr 20 11:46:49 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Convert return values of completeAuth to be objects

    M ./openid/consumer/consumer.py -28 +49
    M ./test/consumer.py -15 +12

Thu Apr 20 11:27:00 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Begin refactor of completeAuth.

    M ./openid/consumer/consumer.py -21 +14
    M ./test/consumer.py -11 +20

Wed Apr 19 13:44:58 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.Decoder.decode: raise TypeError early if I get a dict-of-lists.  Fixes #819.

    M ./openid/server/server.py +4
    M ./test/server.py +15

Wed Apr 19 12:45:19 PDT 2006  Kevin Turner <kevin@janrain.com>
  * rename examples/server2.py to examples/server.py

     ./examples/server2.py -> ./examples/server.py

Wed Apr 19 12:44:38 PDT 2006  Kevin Turner <kevin@janrain.com>
  * remove old server example

    R ./examples/server.py

Wed Apr 19 12:34:51 PDT 2006  Kevin Turner <kevin@janrain.com>
  * test/server.TestDecode: test error cases for check_authentication.  Fixes #932.

    M ./test/server.py -2 +25

Wed Apr 19 12:33:45 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server: add example to Extensions section

    M ./openid/server/server.py +7

Wed Apr 19 11:10:13 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckIdRequest.answer: immediate=False for user_setup_url

    M ./openid/server/server.py -1 +1

Tue Apr 18 18:57:37 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckIDRequest.answer: immediate=False for user_setup_url

    M! ./openid/server/server.py -1 +1

Tue Apr 18 18:55:58 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server: docstrings on upgrading and extensions

    M ./openid/server/server.py -16 +23

Tue Apr 18 14:26:46 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Begin sync-up with the Ruby API: change beginAuth to begin() and get the redirect URL from the response to that call

    M ./examples/consumer.py -5 +8
    M ./openid/consumer/consumer.py -206 +44
    M ./openid/consumer/discover.py +3
    M ./test/consumer.py -17 +9

Tue Apr 18 13:59:49 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Remove replace parameter to _getAssociation, because it's always called with True

    M ./openid/consumer/consumer.py -4 +3

Tue Apr 18 13:21:30 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Let the DiffieHellman object tell us if we're using the default values

    M ./openid/consumer/consumer.py -2 +1

Tue Apr 18 12:54:59 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Add method to dh object to check if it's using the OpenID default values

    M ./openid/dh.py +4

Mon Apr 17 16:20:51 PDT 2006  dag@janrain.com
  * correctly generate setup_url

    M ./openid/server/server.py -1 +1

Mon Apr 17 15:52:41 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Factor out common logic between KV form requests from the consumer

    M ./openid/consumer/consumer.py -38 +30
    M ./test/consumer.py -2 +2

Mon Apr 17 13:55:41 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Python 2.2 compatibility - no basestring class

    M ./openid/oidutil.py -1 +1

Mon Apr 17 13:53:30 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Remove crufty (discovery-related) imports from consumer module

    M ./openid/consumer/consumer.py -5

Mon Apr 17 13:49:56 PDT 2006  Josh Hoyt <josh@janrain.com>
  * make normalizeUrl return None for anything but a basestring instance

    M ./openid/oidutil.py -3 +1

Mon Apr 17 13:48:37 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Remove cruft from consumer (remove discovery completely)

    M ./openid/consumer/consumer.py -26 +2

Mon Apr 17 13:47:58 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Fix message for no services found for URL in consumer example

    M ./examples/consumer.py -2 +3

Mon Apr 17 13:45:31 PDT 2006  Josh Hoyt <josh@janrain.com>
  * remove getDiscovery function from consumer example

    M ./examples/consumer.py -6 +4

Mon Apr 17 12:23:23 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Fix the discovery in the consumer example

    M ./examples/consumer.py -26 +29

Mon Apr 17 12:00:38 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Remove explicit fetcher-passing (use urljr's default fetcher)

    M ./openid/consumer/consumer.py -45 +6
    M ./openid/consumer/discover.py -3 +4
    M ./test/consumer.py -18 +10
    M ./test/test_discover.py -14 +30

Mon Apr 17 09:12:49 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Change discovery API to return identity URL as well as service list

    M ./openid/consumer/discover.py -4 +6
    M ./test/test_discover.py -8 +16

Mon Apr 17 09:11:55 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Remove .extensions cruft

    M ./openid/consumer/discover.py -1

Fri Apr 14 12:22:56 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckAuthRequest.fromQuery: set invalidate_handle
  
  (whaddya know, some of those "XXX - test that too" comments in the tests
  were actually important.)

    M ./openid/server/server.py +3
    M ./test/server.py -1 +17

Fri Apr 14 10:29:01 PDT 2006  Kevin Turner <kevin@janrain.com>
  * resolve conflict with server.AssociateRequest dh_modulus / dh_gen patches
  
  I'll be wanting to refactor my version a bit to make it cleaner to read,
  but need to quash the conflict first.

    M ./openid/server/server.py -5 +44
    M ./test/server.py -4 +3

Thu Apr 13 15:09:54 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Added session support and new API support for consumer example

    M ./examples/consumer.py -50 +84

Thu Apr 13 13:56:41 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Whitespace

    M ./examples/consumer.py -2 +2

Thu Apr 13 13:26:32 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Ported discovery tests and fixed revealed bugs

    M ./openid/consumer/discover.py -6 +8
    M ./test/test_discover.py +246

Thu Apr 13 09:45:11 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Added tests for HTML discovery

    M ./openid/consumer/discover.py -2 +2
    M ./test/runtests +2
    A ./test/test_htmldiscover.py

Thu Apr 13 09:44:02 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Make default data-driven test instantiation more versatile

    M ./test/datadriven.py -1 +10
    M ./test/test_discover.py -11 +11

Thu Apr 13 09:19:55 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Add test for DiscoveryFailure with x-xrds-location

    M ./test/test_discover.py -15 +19

Thu Apr 13 09:19:28 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Docs for test_discover

    M ./test/test_discover.py -3 +13

Thu Apr 13 09:07:08 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Add datadriven module for data-driven test case helper code

    A ./test/datadriven.py
    M ./test/runtests -1 +1
    M ./test/test_discover.py -27 +60

Wed Apr 12 14:59:09 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Remove discovery from the consumer tests and consumer module.

    M ./openid/consumer/consumer.py -138 +16
    M ./openid/consumer/discover.py -10 +87
    M ./test/consumer.py -366 +12
    M ./test/runtests +2
    A ./test/test_discover.py

Wed Apr 12 12:01:21 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Remove unused parameter from openid.consumer.parse.openIDDiscover, and
  also make it return None for delegate if its not present
  
  It'd be even better if I wrote a test.

    M ./openid/consumer/consumer.py -2 +2
    M ./openid/consumer/parse.py -5 +2

Tue Apr 11 14:22:19 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Use dh_modulus and dh_gen parameters if they are supplied in an associate request to the server

    M! ./openid/server/server.py -44 +5
    M! ./test/server.py -3 +4

Tue Apr 11 14:18:11 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Make diffie-hellman object complain if you try to give it modulus without generator or vice-versa

    M ./openid/dh.py +12

Tue Apr 11 10:37:57 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Convert kvform test to pyunit and fail if there is a colon in the key name for seqToKV

    M ./openid/kvform.py +4
    M ./test/kvform.py -85 +129
    M ./test/runtests -1 +2

Fri Apr 14 10:18:43 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.AssociateRequest.fromQuery: use non-default DH modulus and gen when provided.  Fixes #923.

    M ./openid/server/server.py -9 +49
    M ./test/server.py -2 +81

Thu Apr 13 15:30:21 PDT 2006  Kevin Turner <kevin@janrain.com>
  * test/server.TestAssociate.test_dh: s/dh/consumer_dh/ to be clear

    M ./test/server.py -3 +3

Thu Apr 13 14:34:51 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.OpenIDServer: docstrings

    M ./openid/server/server.py -4 +107

Thu Apr 13 14:32:24 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.__doc__: explicitly point to server.server

    M ./openid/server/__init__.py -1 +1

Thu Apr 13 14:31:26 PDT 2006  Kevin Turner <kevin@janrain.com>
  * whitespace

    M ./openid/server/server.py +2
    M ./test/server.py +1

Thu Apr 13 14:30:46 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.IEncodable: docstrings
  
  (oh wait we don't actually use Interfaces)

    M ./openid/server/server.py +15

Thu Apr 13 14:24:50 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.SigningEncoder.encode: add missing @returntype

    M ./openid/server/server.py +2

Thu Apr 13 14:24:12 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.EncodingError.response: docstring

    M ./openid/server/server.py +3

Thu Apr 13 14:23:20 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server: docstrings for remaining Exceptions

    M ./openid/server/server.py +13

Thu Apr 13 14:18:29 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.ProtocolError: docstrings

    M ./openid/server/server.py -1 +46

Thu Apr 13 14:09:29 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckIDRequest: move trust root checking from .answer to constructor.  Fixes #947.
  
  I first thought that checking to see if the return_to is within the
  trust_root is premature here, a logic-not-decoding thing.  But it was
  argued that this is really part of data validation.  A request with
  an invalid trust_root/return_to is broken regardless of application,
  right?

    M ./openid/server/server.py -3 +17
    M ./test/server.py -8 +16

Thu Apr 13 11:14:23 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.Decoder: docstrings
  
  Also just use OPENID_PREFIX instead of self.prefix, for consistency with
  the rest of the module.  Less customizable, but entirely reasonable for
  something in the "openid" package to do.

    M ./openid/server/server.py -7 +29

Thu Apr 13 10:39:08 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server: typo clean-up

    M ./openid/server/server.py -3 +3

Thu Apr 13 10:36:31 PDT 2006  Kevin Turner <kevin@janrain.com>
  * serve.server.Encoder and SigningEncoder: docstrings

    M ./openid/server/server.py -6 +22

Wed Apr 12 20:14:09 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server: misc docstring tweaks

    M ./openid/server/server.py -2 +3

Wed Apr 12 20:11:05 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.Signatory: docstrings

    M ./openid/server/server.py -2 +92

Wed Apr 12 18:33:21 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.WebResponse: docstrings

    M ./openid/server/server.py -7 +25

Wed Apr 12 18:27:51 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.Signatory: s/(dumb|normal)_key/_(\1)_key)/
  this attribute isn't really anything the public wants to know about.

    M ./openid/server/server.py r2
    M ./test/server.py r2

Wed Apr 12 16:44:55 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckIDResponse.update: fixorate namespace handling

    M ./openid/server/server.py -3 +28
    M ./test/server.py -1 +15

Wed Apr 12 16:43:43 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckIDResponse: docstrings

    M ./openid/server/server.py -2 +43

Wed Apr 12 15:57:10 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckIDResponse.addField: do not add the namespace seperator to the key when there is no namespace

    M ./openid/server/server.py -1 +2
    M ./test/server.py +7

Wed Apr 12 15:33:57 PDT 2006  Kevin Turner <kevin@janrain.com>
  * serve.server.OpenIDResponse: docstrings

    M ./openid/server/server.py -8 +30

Wed Apr 12 15:26:33 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckIDRequest.__doc__: correct mismatched braces

    M ./openid/server/server.py -2 +2

Wed Apr 12 15:25:34 PDT 2006  Kevin Turner <kevin@janrain.com>
  * openid.server.server: tweaks to module docstring

    M ./openid/server/server.py -5 +7

Tue Apr 11 18:41:29 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckIDRequest.answer: build setup_url from server_url [API]
  
  As requested.

    M ./openid/server/server.py -2 +53
    M ./test/server.py -6 +17

Tue Apr 11 18:39:29 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckIDRequest: docstrings

    M ./openid/server/server.py -7 +51

Tue Apr 11 18:26:03 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckIDRequest.fromQuery: simplify a bit.

    M ./openid/server/server.py -8 +5

Tue Apr 11 15:45:39 PDT 2006  Kevin Turner <kevin@janrain.com>
  * test/server: remove old commented tests, as I believe they've been ported.

    M ./test/server.py -81

Thu Apr  6 16:13:56 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.AssociateRequest: docstrings

    M ./openid/server/server.py -1 +58

Thu Apr  6 16:12:24 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckAuthRequest: docstrings

    M ./openid/server/server.py -4 +52

Thu Apr  6 14:19:33 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.OpenIDRequest.__doc__

    M ./openid/server/server.py +5

Thu Apr  6 14:18:55 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.__doc__

    M ./openid/server/server.py -20 +61

Mon Apr 10 15:42:24 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Change extension mechanism to use extra Type tags instead of openid:Extension. Add test for OpenID Yadis endpoint parsing.

    M ./openid/consumer/consumer.py -2 +2
    M ./openid/consumer/discover.py -13 +20
    M ./test/runtests +2
    A ./test/test_openidyadis.py

Fri Apr  7 13:38:31 PDT 2006  Josh Hoyt <josh@janrain.com>
  * XrdsError -> XRDSError

    M ./openid/consumer/consumer.py -2 +2

Thu Apr  6 15:59:56 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Import xrds error from new location in Yadis library

    M ./openid/consumer/consumer.py -1 +1

Thu Apr  6 14:04:35 PDT 2006  cygnus@janrain.com
  * Fixed protocol error instantiations

    M ./openid/server/server.py -2 +2

Wed Apr  5 14:26:02 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Switch to new Yadis API (including new service endpoint object)

    M ./openid/consumer/consumer.py -21 +17
    M ./openid/consumer/discover.py -28 +46
    M ./test/consumer.py -6 +6

Mon Apr  3 16:59:51 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server.IEncodable comment

    M ./openid/server/server.py +17

Mon Apr  3 16:59:14 PDT 2006  Kevin Turner <kevin@janrain.com>
  * server.server: make ProtocolErrors Encodable, move encodeTo* to methods [API]
  
  Response and ProtocolError now implement Encodable, so they have encodeTo*
  methods rather than the encodeTo*(response) module-level functions.
  
  (I still think it wants adapters so protocol wire-level stuff doesn't get mixed
  up with the transport-agnostic representation, but we've only got the one
  transport, so...)

    M ./openid/server/server.py -60 +141
    M ./test/server.py -3 +75

Fri Mar 31 15:08:18 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckIDResponse: methods for adding fields.  [API]

    M ./openid/server/server.py +20
    M ./test/server.py +81

Fri Mar 31 11:55:48 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckIDRequest.fromQuery(): do set assoc_handle

    M ./openid/server/server.py -1 +1
    M ./test/server.py +1

Thu Mar 30 15:41:51 PST 2006  Josh Hoyt <josh@janrain.com>
  * Added support for new Yadis API

    M ./openid/consumer/consumer.py -3 +5
    A ./openid/consumer/discover.py

Wed Mar 29 22:07:35 PST 2006  Josh Hoyt <josh@janrain.com>
  * Update the OpenID consumer to match the new Yadis API

    M ./openid/consumer/consumer.py -4 +5

Thu Mar 30 14:27:22 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server: no longer expect to see 'openid.' in Response.fields
  
  It will be inserted during the encoding when necessary.

    M ./openid/server/server.py -23 +25
    M ./test/server.py -45 +46

Thu Mar 30 10:42:16 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server: encoding helpers for frameworks that don't like WebResponse.
  
  bool responseIsKvform(response)
  
  str encodeToURL(response)
  
  str encodeToKVForm(response)
  
  bool needsSigning(response)

    M ./openid/server/server.py -13 +80

Wed Mar 29 17:17:18 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server: more exceptions are ProtocolErrors

    M ./openid/server/server.py -2 +5

Wed Mar 29 17:16:37 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckIDRequest.getCancelURL(): added
  
  For when you want to be able to get the cancel URL without getting the redirect
  response.

    M ./openid/server/server.py +15
    M ./test/server.py +11

Wed Mar 29 12:44:55 PST 2006  Kevin Turner <kevin@janrain.com>
  * s/OpenIDServer2/OpenIDServer/

    M ./examples/server2.py r1
    M ./openid/server/server.py r1
    M ./test/server.py -1 +1 r1

Wed Mar 29 12:41:23 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server: remove old API

    M ./openid/server/server.py -1000 +3

Wed Mar 29 12:36:25 PST 2006  Kevin Turner <kevin@janrain.com>
  * test/server.py: remove tests for old API

    M ./test/server.py -398 +68

Wed Mar 29 12:34:49 PST 2006  Kevin Turner <kevin@janrain.com>
  * test/server.py: oops, had two of TestSignatory.test_signDumb

    M ./test/server.py -20 +1

Wed Mar 29 12:33:55 PST 2006  Kevin Turner <kevin@janrain.com>
  * test/server.py: add remaining tests to new API that covered the old API

    M ./test/server.py -3 +35

Wed Mar 29 12:29:51 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.CheckIDRequest.fromQuery: raise MalformedReturnURL

    M ./openid/server/server.py +10

Tue Mar 28 17:41:10 PST 2006  Kevin Turner <kevin@janrain.com>
  * examples/server2.py: updated to new locations of encode/decode

    M ./examples/server2.py -6 +6

Tue Mar 28 17:36:32 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckIDRequest.answer(): don't sign user_setup_url responses

    M ./openid/server/server.py +1
    M ./test/server.py +1

Tue Mar 28 17:25:08 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server: move encode() and decode() to OpenIDServer.encodeResponse() and OpenIDServer.decodeRequest()

    M ./openid/server/server.py -25 +26
    M ./test/server.py -20 +24

Tue Mar 28 17:05:52 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.Signatory.__init__(): assert store is not None

    M ./examples/server2.py -2
    M ./openid/server/server.py +1

Tue Mar 28 16:38:03 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.SigningEncoder.encode: cleanse
  The convenience function may take a store, but that's really not what the
  interface wants to express.

    M ./openid/server/server.py -10 +13

Tue Mar 28 16:20:41 PST 2006  Kevin Turner <kevin@janrain.com>
  * test.server.TestCheckID: ensure a cancel response doesn't get signed

    M ./test/server.py +1

Tue Mar 28 16:19:56 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.SigningEncoder: added.  server.server.encode now uses this.

    M ./openid/server/server.py -1 +26
    M ./test/server.py +79

Tue Mar 28 16:15:17 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckIDResponse.__str__(): include .signed in string

    M ./openid/server/server.py +6

Tue Mar 28 16:08:30 PST 2006  Kevin Turner <kevin@janrain.com>
  * whitespace normalization

    M ./examples/server2.py -1 +1

Tue Mar 28 14:47:10 PST 2006  Kevin Turner <kevin@janrain.com>
  * test/server.TestEncode: test Encoder.encode() rather than server.encode,
  as server.encode will start using the signed encoder.

    M ./test/server.py -4 +8

Tue Mar 28 14:38:30 PST 2006  Kevin Turner <kevin@janrain.com>
  * test/server.py: prevent log spewage during tests

    M ./openid/server/server.py -1 +3
    M ./test/server.py -2 +30

Mon Mar 27 17:07:08 PST 2006  Kevin Turner <kevin@janrain.com>
  * examples/server2: a bit of cleanup

    M ./examples/server2.py -29 +5

Mon Mar 27 16:39:53 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.Signatory.sign: fix dumb mode signing

    M ./openid/server/server.py -4 +13
    M ./test/server.py +19

Mon Mar 27 16:37:25 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.Signatory: added a bit of logging

    M ./openid/server/server.py +3

Mon Mar 27 16:35:49 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckIDRequest: added __str__

    M ./openid/server/server.py -1 +6

Mon Mar 27 14:43:13 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckAuthRequest, OpenIDResponse: add __str__

    M ./openid/server/server.py -1 +17

Mon Mar 27 14:42:07 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.CheckAuthRequest.fromQuery: hardcode signed openid.mode.
  
  # XXX KLUDGE HAX WEB PROTOCoL BR0KENNN
  # openid.mode is currently check_authentication because that's the
  # mode of this request.  But the signature was made on something with
  # a different openid.mode.
  value = "id_res"

    M ./openid/server/server.py -1 +8
    M ./test/server.py -1 +2

Mon Mar 27 12:14:05 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.Signatory: put a (bogus) URL in the store keys
  This is to keep filestore happy, which really does expect a URL in that key.
  This is a bit of a kludge, as I don't expect multiple servers to share a
  store, so perhaps we should adjust the store interface a bit.

    M ./openid/server/server.py -2 +6
    M ./test/server.py -12 +14

Mon Mar 27 11:55:55 PST 2006  Kevin Turner <kevin@janrain.com>
  * examples/server2.py: now more functional
  
  (but not entirely functional -- something is still broken with dumb mode.)

    M ./examples/server2.py -15 +22

Fri Mar 24 14:29:46 PST 2006  Kevin Turner <kevin@janrain.com>
  * examples/server2: fix Server2 class name

    M ./examples/server2.py -1 +1

Fri Mar 24 14:24:26 PST 2006  Kevin Turner <kevin@janrain.com>
  * examples/server2.py: added
  (not quite baked yet)

    A ./examples/server2.py

Fri Mar 24 11:54:02 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.Server: don't hardcode signatory class

    M ./openid/server/server.py -1 +2

Fri Mar 24 11:51:12 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.AssociationRequest.answer(): implemented

    M ./openid/server/server.py -2 +27
    M ./test/server.py -3 +42

Fri Mar 24 11:46:18 PST 2006  Kevin Turner <kevin@janrain.com>
  * s/cleartext/plaintext/

    M ./openid/server/server.py r1

Thu Mar 23 17:11:30 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server: s/cleartext/plaintext/

    M ./openid/server/server.py -1 +1
    M ./test/server.py r1

Thu Mar 23 16:31:28 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.UntrustedReturnURL.__str__: fix

    M ./openid/server/server.py -2 +2

Thu Mar 23 16:29:43 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.Signatory.createAssociation(): now a public method

    M ./openid/server/server.py -4 +6
    M ./test/server.py +4

Thu Mar 23 10:08:12 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.Server.openid_check_authentication(): implemented

    M ./openid/server/server.py -2 +11
    M ./test/server.py -8 +16

Wed Mar 22 16:49:39 PST 2006  Kevin Turner <kevin@janrain.com>
  * test/server.TestEncode.test_checkauthReply(): written

    M ./openid/server/server.py -4 +4
    M ./test/server.py -1 +14

Wed Mar 22 12:47:03 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.CheckAuthRequest.answer(): implemented
  also tweaked the signature of Signatory.verify a bit, as the protocol
  unpacking should happen earlier, not in Signatory or Association.

    M ./openid/server/server.py -5 +34
    M ./test/server.py -27 +119

Tue Mar 21 15:08:43 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.Signatory.verify(): implemented

    M ./openid/server/server.py -6 +19
    M ./test/server.py -6 +50

Tue Mar 21 13:39:54 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.server.Signatory.sign(): implemented

    M ./openid/server/server.py -1 +32
    M ./test/server.py -9 +81

Tue Mar 21 11:37:52 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.Server.handle(): do dispatch

    M ./openid/server/server.py -1 +2
    M ./test/server.py -2 +2

Tue Mar 21 11:33:44 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.Encoder(): works for checkid

    M ./openid/server/server.py -2 +18
    M ./test/server.py -1 +3

Tue Mar 21 11:15:08 PST 2006  Kevin Turner <kevin@janrain.com>
  * test/server.py: mark incomplete tests

    M ./test/server.py -2 +4

Tue Mar 21 11:13:43 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.Decoder: replace getattr dispatch with handlers dict
  since all the handler methods turned in to one-line calls to other methods,
  this seemed to make sense.

    M ./openid/server/server.py -13 +9

Tue Mar 21 10:55:04 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.CheckIDRequest.answer(): implemented

    M ./openid/server/server.py -2 +44
    M ./test/server.py -1 +1

Tue Mar 21 10:33:51 PST 2006  Kevin Turner <kevin@janrain.com>
  * test/server.py: fix CheckIDRequest constructors

    M ./test/server.py -9 +9

Tue Mar 21 10:29:03 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.AssociateRequest.fromQuery(): added

    M ./openid/server/server.py -2 +18

Tue Mar 21 10:15:40 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.Decoder: simplify

    M ./openid/server/server.py -12 +11

Tue Mar 21 10:03:46 PST 2006  Kevin Turner <kevin@janrain.com>
  * server.CheckIDRequest.fromQuery(): moved from Decoder.decodeCheckId

    M ./openid/server/server.py -28 +39
    M ./test/server.py -4 +4

Tue Mar 21 09:52:51 PST 2006  Kevin Turner <kevin@janrain.com>
  * openid.server.CheckAuthRequest.fromQuery: added

    M ./openid/server/server.py -2 +27
    M ./test/server.py -1 +1

Mon Mar 20 17:10:33 PST 2006  Kevin Turner <kevin@janrain.com>
  * openid.server: implemented Decode for checkid

    M ./openid/server/server.py -7 +69
    M ./test/server.py -3 +9

Mon Mar 20 16:15:53 PST 2006  Kevin Turner <kevin@janrain.com>
  * openid.server: implement stubs to turn Errors into Failures

    M ./openid/server/server.py -2 +55
    M ./test/server.py -17 +17

Mon Mar 20 15:52:41 PST 2006  Kevin Turner <kevin@janrain.com>
  * openid.server: tests for new server API

    M ./openid/server/server.py -1 +56
    M ./test/server.py +345

Mon Mar 20 15:51:21 PST 2006  Kevin Turner <kevin@janrain.com>
  tagged 3/20 Server API Base


Thu Mar 16 12:32:45 PST 2006  Josh Hoyt <josh@janrain.com>
  * Fix test after pulling patches

    M ./test/server.py -1 +2

Thu Mar 16 12:29:26 PST 2006  Josh Hoyt <josh@janrain.com>
  * Resolve conflict

    M ./openid/server/server.py -5 +4
    M ./test/server.py -1 +1

Thu Mar 16 12:22:57 PST 2006  Josh Hoyt <josh@janrain.com>
  *  Fix case where the application will attempt to continue when the return_to is badly malformed and there is no trust_root specified

    M ./openid/oidutil.py +12
    M! ./openid/server/server.py -8 +7
    M ./test/server.py +11

Wed Mar 15 17:02:31 PST 2006  Kevin Turner <kevin@janrain.com>
  * test/server.py: remove unused import

    M ./test/server.py -1

Wed Mar 15 17:01:52 PST 2006  Kevin Turner <kevin@janrain.com>
  * server API: Move http_method and args from getOpenIDResponse arguments to AppIface.

    M ./openid/server/server.py -92 +96
    M ./test/server.py -15 +24

Tue Mar 14 15:47:35 PST 2006  Kevin Turner <kevin@janrain.com>
  * NEWS: Added with notes on OpenID 1.2.0.
  
  This contains (or will, once it's filled out a little more)
  information on new features and API changes.  Should the details of
  the API changes be split out in to another Upgrading document?
  (One would be targeted at sysadmins updating their packages, the other at
  application developers who need to update their code.)

    A ./NEWS

Mon Mar 13 13:45:33 PST 2006  Josh Hoyt <josh@janrain.com>
  * Fix signature generation

    M ./openid/server/server.py -1 +2
    M ./test/server.py -10 +41

Mon Mar 13 13:28:28 PST 2006  Josh Hoyt <josh@janrain.com>
  * Changed server interface to allow adding additional signed args

    M ./openid/server/server.py -19 +46
    M ./test/server.py -14 +20

Mon Mar 13 15:00:31 PST 2006  Kevin Turner <kevin@janrain.com>
  * consumer.factory: remove

    R ./openid/consumer/factory.py

Mon Mar 13 14:58:39 PST 2006  Kevin Turner <kevin@janrain.com>
  * consumer.OpenIDConsumer API part 2: completeAuth no longer takes token

    M ./openid/consumer/consumer.py -4 +17
    M ./test/consumer.py -2 +2

Mon Mar 13 14:25:59 PST 2006  Kevin Turner <kevin@janrain.com>
  * consumer API change part 1 -- beginAuth
  beginAuth now does Yadis discovery and has constructRedirect folded in.
  (not done yet: removing token from completeAuth)

    M ./openid/consumer/consumer.py -30 +222
    M ./test/consumer.py -34 +32

Mon Mar 13 13:23:26 PST 2006  Kevin Turner <kevin@janrain.com>
  * test.consumer: all tests test the same class
  (not some for consumer. and others for factory.)

    M ./openid/consumer/factory.py -6 +20
    M! ./test/consumer.py -49 +51

Mon Mar 13 12:07:44 PST 2006  Kevin Turner <kevin@janrain.com>
  * consumer: move immediate flag to constructRedirect

    M ./openid/consumer/consumer.py -20 +20

Mon Mar 13 11:24:55 PST 2006  Kevin Turner <kevin@janrain.com>
  * test.consumer: pyunitification

    M ./test/consumer.py -80 +78
    M ./test/runtests -1 +1

Mon Mar 13 10:44:04 PST 2006  Kevin Turner <kevin@janrain.com>
  * consumer.._getServerList(): add 'rediscover' parameter, use when server list is exhausted

    M ./openid/consumer/factory.py -2 +4
    M ./test/consumer.py -3 +5

Fri Mar 10 20:21:16 PST 2006  Kevin Turner <kevin@janrain.com>
  * test.consumer: mutable class level attributes cause troubble

    M ./test/consumer.py +1

Fri Mar 10 20:17:03 PST 2006  Kevin Turner <kevin@janrain.com>
  * consumer.completeAuth(): unvisit servers with cancelled requests

    M ./openid/consumer/factory.py -1 +17

Fri Mar 10 19:46:05 PST 2006  Kevin Turner <kevin@janrain.com>
  * consumer.._popNextServer(): new for the yadis fallback fantastic

    M ./openid/consumer/factory.py -6 +68
    M ./test/consumer.py +46

Fri Mar 10 18:15:21 PST 2006  Kevin Turner <kevin@janrain.com>
  * consumer: more discovery cases

    M ./openid/consumer/factory.py -8 +41
    M ./test/consumer.py -1 +98

Fri Mar 10 18:14:34 PST 2006  Kevin Turner <kevin@janrain.com>
  * consumer..beginAuth(): try the first service (no fallback yet)

    M ./openid/consumer/factory.py -1 +6

Fri Mar 10 17:12:42 PST 2006  Kevin Turner <kevin@janrain.com>
  * Consumer.discover(): return final_url, service_list

    M ./openid/consumer/factory.py -2 +2
    M ./test/consumer.py -5 +19

Fri Mar 10 17:05:06 PST 2006  Kevin Turner <kevin@janrain.com>
  * test.consumer.TestOpenidRequest: add session parameter

    M ./test/consumer.py -1 +2

Fri Mar 10 16:34:16 PST 2006  Kevin Turner <kevin@janrain.com>
  * consumer.factory.OpenIDConsumer.discover(): now with yadis

    M ./openid/consumer/factory.py -5 +53
    M ./test/consumer.py -1 +150

Thu Mar  9 16:08:52 PST 2006  Kevin Turner <kevin@janrain.com>
  * makedoc: remove consumer.fetchers

    M ./makedoc -1

Wed Mar  8 12:12:12 PST 2006  Kevin Turner <kevin@janrain.com>
  * test.consumer.TestOpenidRequest.test_getToken(): add equality test

    M ./test/consumer.py +1

Wed Mar  8 11:48:40 PST 2006  Kevin Turner <kevin@janrain.com>
  * test/consumer.py: wrap non-pyunit tests in pyunit fixture

    M ./test/consumer.py -9 +21
    M ./test/runtests -2 +1

Wed Mar  8 11:31:04 PST 2006  Kevin Turner <kevin@janrain.com>
  * consumer: define __eq__

    M ./openid/consumer/consumer.py +15
    M ./openid/consumer/factory.py +25
    M ./test/_memstore.py +8

Tue Mar  7 18:50:27 PST 2006  Kevin Turner <kevin@janrain.com>
  * consumer.OpenIDRequest: smarter accessors for token
  consumer.OpenIDConsumer.makeRequestFromToken(): added

    M ./openid/consumer/factory.py -5 +34
    M ./test/consumer.py +24

Tue Mar  7 18:48:45 PST 2006  Kevin Turner <kevin@janrain.com>
  * consumer.DiscoveryVersion1: set consumer attribute on the new request object

    M ./openid/consumer/factory.py -1 +3

Tue Mar  7 18:47:34 PST 2006  Kevin Turner <kevin@janrain.com>
  * newapi thinkos

    M ./openid/consumer/factory.py -2 +2

Thu Feb 16 18:13:57 PST 2006  Kevin Turner <kevin@janrain.com>
  * examples/newapy.py: added.  sketch of use with YADIS.

    A ./examples/newapi.py

Thu Feb 16 18:13:01 PST 2006  Kevin Turner <kevin@janrain.com>
  * openid.consumer.factory: added.  playing with a new API.

    A ./openid/consumer/factory.py

Fri Mar 10 15:30:40 PST 2006  Kevin Turner <kevin@janrain.com>
  * test.consumer: s/parse/parseQuery/

    M ./test/consumer.py r1

Tue Mar  7 18:09:45 PST 2006  Kevin Turner <kevin@janrain.com>
  * test/consumer.TEstFetcher.fetch: python2.2 compat

    M ./test/consumer.py -3 +4

Tue Mar  7 16:50:13 PST 2006  dag@janrain.com
  * Test consumer on http and https servers cleanly

    M ./test/consumer.py -10 +12

Tue Mar  7 14:03:19 PST 2006  dag@janrain.com
  * Consumer detects https server urls and does not do diffie hellman for them

    M ./openid/consumer/consumer.py -14 +28
    M ./test/consumer.py -14 +28

Wed Apr 26 09:41:28 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Fix error messages in the case of check_authentication test failures

    M ./test/consumer.py -2 +2

Thu Apr 20 16:17:20 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Fix #972 trust root bug logging into mylid.net with myopenid.com

    M ./openid/server/trustroot.py -16 +26
    M ./test/trustroot.txt -1 +3

Thu Apr 20 11:26:11 PDT 2006  chowells@janrain.com
  * fix #932 by using a default value of ''

    M ./openid/association.py -1 +1

Thu Apr 20 13:23:51 PDT 2006  Josh Hoyt <josh@janrain.com>
  * Make sure that we only send args starting with openid. when we call check_authentication

    M ./openid/consumer/consumer.py -2 +2

Fri Mar 17 10:41:57 PST 2006  Josh Hoyt <josh@janrain.com>
  * Updated kvform code to ignore blank lines

    M ./openid/kvform.py +5
    M ./test/kvform.py -2 +5

Thu Mar  9 16:05:37 PST 2006  Kevin Turner <kevin@janrain.com>
  * consumer.consumer: update doc references to fetchers to point to urljr

    M ./openid/consumer/consumer.py -2 +2

Mon Feb 27 12:27:39 PST 2006  chowells@janrain.com
  * rename testUseNonce checkUseNonce

    M ./test/storetest.py -8 +8

Fri Feb 24 16:57:01 PST 2006  Kevin Turner <kevin@janrain.com>
  * remove fetchers
  (they are now in urljr)

    R ./openid/consumer/fetchers.py
    R ./test/fetchers.py
    M ./test/runtests -1

Thu Feb 23 16:57:57 PST 2006  Kevin Turner <kevin@janrain.com>
  * consumer: import fetchers from urljr

    M ./openid/consumer/consumer.py -1 +1
    M ./test/consumer.py -1 +2

Thu Feb 23 16:56:36 PST 2006  Kevin Turner <kevin@janrain.com>
  * runtests: do path mangle fun
  doing this now so the darcs test hook can stop doing PYTHONPATH=.

    M ./test/runtests +12

Thu Feb 23 16:43:30 PST 2006  Kevin Turner <kevin@janrain.com>
  * consumer: fix leftover errors from new fetcher API
  
  and add some tests to minimally cover the code path they occured in.

    M ./openid/consumer/consumer.py -2 +3
    M ./test/consumer.py -7 +57

Thu Feb 16 17:00:41 PST 2006  Kevin Turner <kevin@janrain.com>
  * OpenIDConsumer: s/_gotIdentityInfo/_newAuthRequest/

    M ./openid/consumer/consumer.py r1

Mon Feb 27 12:01:49 PST 2006  chowells@janrain.com
  * Make comments consistent with actual expected behavior

    M ./test/storetest.py -2 +2

Thu Feb 23 14:53:06 PST 2006  chowells@janrain.com
  * Simplify logic

    M ./test/storetest.py -2 +1

Mon Feb 20 16:10:34 PST 2006  Josh Hoyt <josh@janrain.com>
  * Documentation reword on quoteMinimal

    M ./openid/oidutil.py -1 +1

Mon Feb 20 16:09:51 PST 2006  Josh Hoyt <josh@janrain.com>
  * Add normalizeUrl to the exports of oidutil

    M ./openid/oidutil.py -1 +1

Mon Feb 20 16:02:17 PST 2006  Josh Hoyt <josh@janrain.com>
  * Change fetcher API to accept headers and return an object

    M ./openid/consumer/consumer.py -26 +21
    M ./openid/consumer/fetchers.py -100 +118
    M ./test/consumer.py -22 +21
    M ./test/fetchers.py -10 +25

Mon Feb 20 13:48:07 PST 2006  Josh Hoyt <josh@janrain.com>
  * M-x whitespace-cleanup

    M ./openid/consumer/fetchers.py -3 +3

Mon Feb 20 11:41:35 PST 2006  Josh Hoyt <josh@janrain.com>
  * Use independent settings parsing function in the consumer

    M ./openid/consumer/consumer.py -14 +4

Mon Feb 20 11:40:25 PST 2006  Josh Hoyt <josh@janrain.com>
  * Add implementation of OpenID settings parsing as an independent function

    M ./openid/consumer/parse.py +23

Mon Feb 20 11:39:42 PST 2006  Josh Hoyt <josh@janrain.com>
  * M-x whitespace-cleanup

    M ./openid/consumer/parse.py -2 +2

Mon Feb 20 09:18:06 PST 2006  Josh Hoyt <josh@janrain.com>
  * M-x whitespace-cleanup

    M ./openid/server/trustroot.py -1 +1

Tue Feb 14 15:07:00 PST 2006  Kevin Turner <kevin@janrain.com>
  tagged release-1.0.4

