<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mailman.git/src/mailman/runners/tests/test_join.py, branch pluggable-workflows</title>
<subtitle>The GNU Mailing List manager.</subtitle>
<id>https://git.neuromancer.sk/mailman.git/atom/src/mailman/runners/tests/test_join.py?h=pluggable-workflows</id>
<link rel='self' href='https://git.neuromancer.sk/mailman.git/atom/src/mailman/runners/tests/test_join.py?h=pluggable-workflows'/>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/'/>
<updated>2017-01-04T15:30:17Z</updated>
<entry>
<title>Bump copyright years.</title>
<updated>2017-01-04T15:30:17Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2017-01-04T15:30:17Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=8180990a2ed053f6e4880f93a75acd9845631793'/>
<id>urn:sha1:8180990a2ed053f6e4880f93a75acd9845631793</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Simplify the implementation.</title>
<updated>2016-10-17T13:13:32Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2016-10-17T13:13:32Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=d45af03c4f2a560d51631fdfa7c55cd1a98e722c'/>
<id>urn:sha1:d45af03c4f2a560d51631fdfa7c55cd1a98e722c</id>
<content type='text'>
This merges the SubscriptionManager and UnsubscriptionManager into a
single SubscriptionManager implementation that handles both register()
and unregister().  This allows us to use direct class-based adaptation
instead of the more clunky getAdapter() API.  We can also eliminate the
funky _get_workflow() implementation detail.

This has a couple of side-effects.  .confirm() must lookup the token in
the pendings database and pull out the pending type, dispatching to the
proper class depending on the type, or raising a LookupError if the
token is None or there is no pendable associated with the given token.
This feels like an acceptable trade-off.

However, this *also* means that IWorkflowStateManager must lose its
'name' argument in its methods.  That's because we won't actually know
the name until its too late.  Honestly, the name wasn't providing much
value anyway (it was always the subclass's name), so losing that seems
fine too.  The complication here is that the name was a primary key in
the 'workflowstate' table, so we need to add its removal in the database
migration.
</content>
</entry>
<entry>
<title>IWorkflowManager -&gt; ISubscriptionManager</title>
<updated>2016-09-01T11:39:10Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2016-09-01T11:39:10Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=9f7fa58e81c2bc639645383a12b8136e2cf2cb4b'/>
<id>urn:sha1:9f7fa58e81c2bc639645383a12b8136e2cf2cb4b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Checkpointing</title>
<updated>2016-09-01T10:55:09Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2016-08-31T01:02:06Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=84c0f9532ae20d0f5ee8a8ecd9a92e42925b174b'/>
<id>urn:sha1:84c0f9532ae20d0f5ee8a8ecd9a92e42925b174b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Intermediate Commit</title>
<updated>2016-09-01T10:55:09Z</updated>
<author>
<name>Abhilash Raj</name>
</author>
<published>2016-07-31T04:06:57Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=88f349900ea9afea30186c3c9f0f399ff69f6c4a'/>
<id>urn:sha1:88f349900ea9afea30186c3c9f0f399ff69f6c4a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Clean up the runners directory.</title>
<updated>2016-03-25T22:03:12Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2016-03-25T22:03:12Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=077a49a823af227c7038f9533eb8d9d55571bbe7'/>
<id>urn:sha1:077a49a823af227c7038f9533eb8d9d55571bbe7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Additional refactoring to use the QuerySequence wrapper, so that we can still</title>
<updated>2016-01-07T03:43:04Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2016-01-07T03:43:04Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=a4bbc7c4fcea5596ab9f5a3d82983ddcf6d25909'/>
<id>urn:sha1:a4bbc7c4fcea5596ab9f5a3d82983ddcf6d25909</id>
<content type='text'>
use len() and slicing on SQLAlchemy query results.  We also don't need to
list()-ify the results in the tests.  This isn't perfect, but at least it
doesn't introduce yet another layer violation.
</content>
</entry>
<entry>
<title>Make the members request pageable</title>
<updated>2016-01-06T23:55:56Z</updated>
<author>
<name>Aurélien Bompard</name>
</author>
<published>2015-11-23T16:46:55Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=e4167544b41f065b29a27ef5f9e27283557185f2'/>
<id>urn:sha1:e4167544b41f065b29a27ef5f9e27283557185f2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Happy New Year.</title>
<updated>2016-01-03T03:43:23Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2016-01-03T03:43:23Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=f390e08c31477c476e1312d03771b68e22b42675'/>
<id>urn:sha1:f390e08c31477c476e1312d03771b68e22b42675</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Plumb the subscription policy through the REST API.</title>
<updated>2015-04-16T02:51:39Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2015-04-16T02:51:39Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=08f457799cd36349a4fd22642f4c05b4eabb306d'/>
<id>urn:sha1:08f457799cd36349a4fd22642f4c05b4eabb306d</id>
<content type='text'>
</content>
</entry>
</feed>
