<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[13807] twext/trunk/twext</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.calendarserver.org//changeset/13807">13807</a></dd>
<dt>Author</dt> <dd>cdaboo@apple.com</dd>
<dt>Date</dt> <dd>2014-07-31 12:18:20 -0700 (Thu, 31 Jul 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Whitespace.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#twexttrunktwextapplicationmasterchildpy">twext/trunk/twext/application/masterchild.py</a></li>
<li><a href="#twexttrunktwextenterpriseadbapi2py">twext/trunk/twext/enterprise/adbapi2.py</a></li>
<li><a href="#twexttrunktwextenterprisedaltesttest_sqlsyntaxpy">twext/trunk/twext/enterprise/dal/test/test_sqlsyntax.py</a></li>
<li><a href="#twexttrunktwextenterprisejobqueuepy">twext/trunk/twext/enterprise/jobqueue.py</a></li>
<li><a href="#twexttrunktwextenterprisequeuepy">twext/trunk/twext/enterprise/queue.py</a></li>
<li><a href="#twexttrunktwextenterprisetesttest_adbapi2py">twext/trunk/twext/enterprise/test/test_adbapi2.py</a></li>
<li><a href="#twexttrunktwextinternetadaptendpointpy">twext/trunk/twext/internet/adaptendpoint.py</a></li>
<li><a href="#twexttrunktwextinternetdecoratepy">twext/trunk/twext/internet/decorate.py</a></li>
<li><a href="#twexttrunktwextinternetfswatchpy">twext/trunk/twext/internet/fswatch.py</a></li>
<li><a href="#twexttrunktwextinternetgaiendpointpy">twext/trunk/twext/internet/gaiendpoint.py</a></li>
<li><a href="#twexttrunktwextinternetspawnsvcpy">twext/trunk/twext/internet/spawnsvc.py</a></li>
<li><a href="#twexttrunktwextinternetsslpy">twext/trunk/twext/internet/ssl.py</a></li>
<li><a href="#twexttrunktwextinternettesttest_adaptendpointpy">twext/trunk/twext/internet/test/test_adaptendpoint.py</a></li>
<li><a href="#twexttrunktwextinternettesttest_gaiendpointpy">twext/trunk/twext/internet/test/test_gaiendpoint.py</a></li>
<li><a href="#twexttrunktwextinternetthreadutilspy">twext/trunk/twext/internet/threadutils.py</a></li>
<li><a href="#twexttrunktwextpythonlaunchdpy">twext/trunk/twext/python/launchd.py</a></li>
<li><a href="#twexttrunktwextpythonlogpy">twext/trunk/twext/python/log.py</a></li>
<li><a href="#twexttrunktwextpythonparallelpy">twext/trunk/twext/python/parallel.py</a></li>
<li><a href="#twexttrunktwextpythontestpullpipepy">twext/trunk/twext/python/test/pullpipe.py</a></li>
<li><a href="#twexttrunktwextpythontesttest_filepathpy">twext/trunk/twext/python/test/test_filepath.py</a></li>
<li><a href="#twexttrunktwextpythontesttest_launchdpy">twext/trunk/twext/python/test/test_launchd.py</a></li>
<li><a href="#twexttrunktwextpythontesttest_logpy">twext/trunk/twext/python/test/test_log.py</a></li>
<li><a href="#twexttrunktwextpythontesttest_parallelpy">twext/trunk/twext/python/test/test_parallel.py</a></li>
<li><a href="#twexttrunktwextwhodirectorypy">twext/trunk/twext/who/directory.py</a></li>
<li><a href="#twexttrunktwextwhoidirectorypy">twext/trunk/twext/who/idirectory.py</a></li>
<li><a href="#twexttrunktwextwhoindexpy">twext/trunk/twext/who/index.py</a></li>
<li><a href="#twexttrunktwextwholdap_servicepy">twext/trunk/twext/who/ldap/_service.py</a></li>
<li><a href="#twexttrunktwextwholdap_utilpy">twext/trunk/twext/who/ldap/_util.py</a></li>
<li><a href="#twexttrunktwextwholdaptesttest_servicepy">twext/trunk/twext/who/ldap/test/test_service.py</a></li>
<li><a href="#twexttrunktwextwholdaptesttest_utilpy">twext/trunk/twext/who/ldap/test/test_util.py</a></li>
<li><a href="#twexttrunktwextwhoopendirectory_constantspy">twext/trunk/twext/who/opendirectory/_constants.py</a></li>
<li><a href="#twexttrunktwextwhoopendirectory_scriptspy">twext/trunk/twext/who/opendirectory/_scripts.py</a></li>
<li><a href="#twexttrunktwextwhoopendirectory_servicepy">twext/trunk/twext/who/opendirectory/_service.py</a></li>
<li><a href="#twexttrunktwextwhoopendirectorytesttest_servicepy">twext/trunk/twext/who/opendirectory/test/test_service.py</a></li>
<li><a href="#twexttrunktwextwhotesttest_directorypy">twext/trunk/twext/who/test/test_directory.py</a></li>
<li><a href="#twexttrunktwextwhotesttest_indexpy">twext/trunk/twext/who/test/test_index.py</a></li>
<li><a href="#twexttrunktwextwhotesttest_utilpy">twext/trunk/twext/who/test/test_util.py</a></li>
<li><a href="#twexttrunktwextwhotesttest_xmlpy">twext/trunk/twext/who/test/test_xml.py</a></li>
<li><a href="#twexttrunktwextwhoxmlpy">twext/trunk/twext/who/xml.py</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="twexttrunktwextapplicationmasterchildpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/application/masterchild.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/application/masterchild.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/application/masterchild.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx">         except TypeError:
</span><span class="cx">             raise UsageError(&quot;Not a protocol: {0}&quot;.format(protocol))
</span><span class="cx"> 
</span><del>-        #### FIXME: port should be a strport
</del><ins>+        # FIXME: port should be a strport
</ins><span class="cx"> 
</span><span class="cx">         # Validate port number
</span><span class="cx">         try:
</span></span></pre></div>
<a id="twexttrunktwextenterpriseadbapi2py"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/enterprise/adbapi2.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/enterprise/adbapi2.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/enterprise/adbapi2.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -932,6 +932,7 @@
</span><span class="cx">         return self.abort()
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> def _fork(x):
</span><span class="cx">     &quot;&quot;&quot;
</span><span class="cx">     Produce a L{Deferred} that will fire when another L{Deferred} fires without
</span></span></pre></div>
<a id="twexttrunktwextenterprisedaltesttest_sqlsyntaxpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/enterprise/dal/test/test_sqlsyntax.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/enterprise/dal/test/test_sqlsyntax.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/enterprise/dal/test/test_sqlsyntax.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -973,13 +973,11 @@
</span><span class="cx">         self.assertEquals(
</span><span class="cx">             Select(
</span><span class="cx">                 From=self.schema.FOO,
</span><del>-                Where=(
-                    (
</del><ins>+                Where=((
</ins><span class="cx">                     self.schema.FOO.BAZ == Parameter(&quot;P1&quot;)
</span><span class="cx">                 ).Or(
</span><del>-                        self.schema.FOO.BAR.In(Parameter(&quot;names&quot;, len(items))
-                ).And(
-                    self.schema.FOO.BAZ == Parameter(&quot;P2&quot;)
</del><ins>+                    self.schema.FOO.BAR.In(Parameter(&quot;names&quot;, len(items))).And(
+                        self.schema.FOO.BAZ == Parameter(&quot;P2&quot;)
</ins><span class="cx">                     )
</span><span class="cx">                 ))
</span><span class="cx">             ).toSQL().bind(P1=&quot;P1&quot;, P2=&quot;P2&quot;, names=items),
</span></span></pre></div>
<a id="twexttrunktwextenterprisejobqueuepy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/enterprise/jobqueue.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/enterprise/jobqueue.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/enterprise/jobqueue.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -81,22 +81,22 @@
</span><span class="cx"> More details:
</span><span class="cx"> 
</span><span class="cx">     Terminology:
</span><del>-    
</del><ins>+
</ins><span class="cx">         node: a host in a multi-host setup. Each node will contain a
</span><span class="cx">             &quot;controller&quot; process and a set of &quot;worker&quot; processes.
</span><span class="cx">             Nodes communicate with each other to allow load balancing
</span><span class="cx">             of jobs across the entire cluster.
</span><del>-        
</del><ins>+
</ins><span class="cx">         controller: a process running in a node that is in charge of
</span><span class="cx">             managing &quot;workers&quot; as well as connections to other nodes. The
</span><span class="cx">             controller polls the job queue and dispatches outstanding jobs
</span><span class="cx">             to its &quot;workers&quot;.
</span><del>-        
</del><ins>+
</ins><span class="cx">         worker: a process running in a node that is responsible for
</span><span class="cx">             executing jobs sent to it by the &quot;controller&quot;. It also
</span><span class="cx">             handles enqueuing of jobs as dictated by operations it
</span><span class="cx">             is doing.
</span><del>-                
</del><ins>+
</ins><span class="cx">     A controller has a:
</span><span class="cx"> 
</span><span class="cx">     L{WorkerConnectionPool}: this maintains a list of worker processes that
</span><span class="lines">@@ -1499,7 +1499,7 @@
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         A worker enqueued a job and is letting us know. We need to &quot;ping&quot; the
</span><span class="cx">         L{PeerConnectionPool} to ensure it is polling the job queue at its
</span><del>-        normal &quot;fast&quot; rate, as opposed to slower idle rates. 
</del><ins>+        normal &quot;fast&quot; rate, as opposed to slower idle rates.
</ins><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><span class="cx">         self.peerPool.enqueuedJob()
</span><span class="lines">@@ -2180,8 +2180,8 @@
</span><span class="cx">         the same peer.
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         # if (host, port) in self.mappedPeers:
</span><del>-            # TODO: think about this for race conditions
-            # self.mappedPeers.pop((host, port)).transport.loseConnection()
</del><ins>+        #     TODO: think about this for race conditions
+        #     self.mappedPeers.pop((host, port)).transport.loseConnection()
</ins><span class="cx">         self.mappedPeers[(host, port)] = peer
</span><span class="cx"> 
</span><span class="cx">     _connectingToPeer = []
</span></span></pre></div>
<a id="twexttrunktwextenterprisequeuepy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/enterprise/queue.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/enterprise/queue.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/enterprise/queue.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -1437,8 +1437,8 @@
</span><span class="cx">         the same peer.
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         # if (host, port) in self.mappedPeers:
</span><del>-            # TODO: think about this for race conditions
-            # self.mappedPeers.pop((host, port)).transport.loseConnection()
</del><ins>+        #     TODO: think about this for race conditions
+        #     self.mappedPeers.pop((host, port)).transport.loseConnection()
</ins><span class="cx">         self.mappedPeers[(host, port)] = peer
</span><span class="cx"> 
</span><span class="cx">     _connectingToPeer = []
</span></span></pre></div>
<a id="twexttrunktwextenterprisetesttest_adbapi2py"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/enterprise/test/test_adbapi2.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/enterprise/test/test_adbapi2.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/enterprise/test/test_adbapi2.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -352,7 +352,7 @@
</span><span class="cx">         stopResult = self.resultOf(self.pool.stopService())
</span><span class="cx">         self.assertEquals(stopResult, [])
</span><span class="cx">         self.flushHolders()
</span><del>-        #self.assertEquals(abortResult, [None])
</del><ins>+        # self.assertEquals(abortResult, [None])
</ins><span class="cx">         self.assertResultList(stopResult, None)
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="twexttrunktwextinternetadaptendpointpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/internet/adaptendpoint.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/internet/adaptendpoint.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/internet/adaptendpoint.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -163,4 +163,3 @@
</span><span class="cx">     wrap.noisy = clientFactory.noisy # relay the noisy attribute to the wrapper
</span><span class="cx">     wrap.connect()
</span><span class="cx">     return wrap
</span><del>-
</del></span></pre></div>
<a id="twexttrunktwextinternetdecoratepy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/internet/decorate.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/internet/decorate.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/internet/decorate.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -90,9 +90,9 @@
</span><span class="cx">         if argname in kw:
</span><span class="cx">             return kw[argname]
</span><span class="cx">         else:
</span><del>-            raise TypeError(&quot;could not find key argument %r in %r/%r (%r)&quot; %
-                (argname, args, kw, argpos)
-            )
</del><ins>+            raise TypeError(&quot;could not find key argument %r in %r/%r (%r)&quot; % (
+                argname, args, kw, argpos
+            ))
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">     def decorate(thunk):
</span></span></pre></div>
<a id="twexttrunktwextinternetfswatchpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/internet/fswatch.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/internet/fswatch.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/internet/fswatch.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx">     kqueueSupported = False
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> class IDirectoryChangeListenee(Interface):
</span><span class="cx">     &quot;&quot;&quot;
</span><span class="cx">     A delegate of DirectoryChangeListener
</span><span class="lines">@@ -60,7 +61,7 @@
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-#TODO: better way to tell if reactor is kqueue or not
</del><ins>+# TODO: better way to tell if reactor is kqueue or not
</ins><span class="cx"> if kqueueSupported and hasattr(reactor, &quot;_doWriteOrRead&quot;):
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -78,7 +79,6 @@
</span><span class="cx">     patchReactor(reactor)
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     class DirectoryChangeListener(Logger, object):
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         Listens for the removal, renaming, or general unavailability of a
</span></span></pre></div>
<a id="twexttrunktwextinternetgaiendpointpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/internet/gaiendpoint.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/internet/gaiendpoint.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/internet/gaiendpoint.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx">                                   AF_UNSPEC, SOCK_STREAM)
</span><span class="cx">         @dgai.addCallback
</span><span class="cx">         def gaiToEndpoints(gairesult):
</span><del>-            for family, socktype, proto, canonname, sockaddr in gairesult:
</del><ins>+            for family, _ignore_socktype, _ignore_proto, _ignore_canonname, sockaddr in gairesult:
</ins><span class="cx">                 if family in [AF_INET6, AF_INET]:
</span><span class="cx">                     yield self.subEndpoint(self.reactor, sockaddr[0],
</span><span class="cx">                                            sockaddr[1], self.contextFactory)
</span><span class="lines">@@ -162,7 +162,9 @@
</span><span class="cx">         host = &quot;localhost&quot;
</span><span class="cx">         port = 22
</span><span class="cx">     gaie = GAIEndpoint(reactor, host, port)
</span><ins>+
</ins><span class="cx">     from twisted.internet.protocol import Factory, Protocol
</span><ins>+
</ins><span class="cx">     class HelloGoobye(Protocol, object):
</span><span class="cx">         def connectionMade(self):
</span><span class="cx">             print('Hello!')
</span><span class="lines">@@ -171,12 +173,16 @@
</span><span class="cx">         def connectionLost(self, reason):
</span><span class="cx">             print('Goodbye')
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx">     class MyFactory(Factory, object):
</span><span class="cx">         def buildProtocol(self, addr):
</span><span class="cx">             print('Building protocol for:', addr)
</span><span class="cx">             return HelloGoobye()
</span><ins>+
+
</ins><span class="cx">     def bye(what):
</span><span class="cx">         print('bye', what)
</span><span class="cx">         reactor.stop()
</span><ins>+
</ins><span class="cx">     gaie.connect(MyFactory()).addBoth(bye)
</span><span class="cx">     reactor.run()
</span></span></pre></div>
<a id="twexttrunktwextinternetspawnsvcpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/internet/spawnsvc.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/internet/spawnsvc.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/internet/spawnsvc.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -50,8 +50,6 @@
</span><span class="cx">     os._exit(0)
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-import sys
-
</del><span class="cx"> from zope.interface import implements
</span><span class="cx"> 
</span><span class="cx"> from twisted.internet.interfaces import ITransport, IPushProducer, IConsumer
</span><span class="lines">@@ -257,6 +255,3 @@
</span><span class="cx">                 bridge.eventuallyStop()
</span><span class="cx">             return self._stopAllDeferred
</span><span class="cx">         return succeed(None)
</span><del>-
-
-
</del></span></pre></div>
<a id="twexttrunktwextinternetsslpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/internet/ssl.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/internet/ssl.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/internet/ssl.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -44,6 +44,7 @@
</span><span class="cx">             sslmethod=sslmethod
</span><span class="cx">         )
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx">     def cacheContext(self):
</span><span class="cx">         # Unfortunate code duplication.
</span><span class="cx">         ctx = SSLContext(self.sslmethod)
</span></span></pre></div>
<a id="twexttrunktwextinternettesttest_adaptendpointpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/internet/test/test_adaptendpoint.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/internet/test/test_adaptendpoint.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/internet/test/test_adaptendpoint.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -33,6 +33,7 @@
</span><span class="cx">         self.__dict__.update(kw)
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> class RecordingProtocol(Protocol, object):
</span><span class="cx">     def __init__(self):
</span><span class="cx">         super(RecordingProtocol, self).__init__()
</span><span class="lines">@@ -82,7 +83,7 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">     def buildProtocol(self, addr):
</span><del>-        b =  RecordingProtocol()
</del><ins>+        b = RecordingProtocol()
</ins><span class="cx">         self.built.append(names(protocol=b, addr=addr))
</span><span class="cx">         return b
</span><span class="cx"> 
</span><span class="lines">@@ -100,6 +101,7 @@
</span><span class="cx">         return d
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> class RecordingTransport(object):
</span><span class="cx"> 
</span><span class="cx">     def __init__(self):
</span><span class="lines">@@ -256,6 +258,3 @@
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         self.connectionFails(Failure(ZeroDivisionError()))
</span><span class="cx">         self.assertRaises(RuntimeError, self.connector.stopConnecting)
</span><del>-
-
-
</del></span></pre></div>
<a id="twexttrunktwextinternettesttest_gaiendpointpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/internet/test/test_gaiendpoint.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/internet/test/test_gaiendpoint.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/internet/test/test_gaiendpoint.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -78,7 +78,7 @@
</span><span class="cx">         A call to L{getaddrinfo} has succeeded; invoke the L{Deferred} waiting
</span><span class="cx">         on it.
</span><span class="cx">         &quot;&quot;&quot;
</span><del>-        d, f, a, k = self.inThreads.pop(0)
</del><ins>+        d, _ignore_f, _ignore_a, _ignore_k = self.inThreads.pop(0)
</ins><span class="cx">         d.callback([(family, socktype, proto, canonname, sockaddr)])
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -109,4 +109,3 @@
</span><span class="cx">         attempt = self.fakeRealEndpoints[0]._attempt
</span><span class="cx">         attempt.callback(self.fakeRealEndpoints[0]._factory.buildProtocol(None))
</span><span class="cx">         self.assertEqual(len(protos), 1)
</span><del>-
</del></span></pre></div>
<a id="twexttrunktwextinternetthreadutilspy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/internet/threadutils.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/internet/threadutils.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/internet/threadutils.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -118,6 +118,3 @@
</span><span class="cx">         self._state = _STATE_STOPPING
</span><span class="cx">         self._q.put(_DONE)
</span><span class="cx">         return s
</span><del>-
-
-
</del></span></pre></div>
<a id="twexttrunktwextpythonlaunchdpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/python/launchd.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/python/launchd.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/python/launchd.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -205,7 +205,6 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
</del><span class="cx"> class LaunchErrno(Exception):
</span><span class="cx">     &quot;&quot;&quot;
</span><span class="cx">     Error from launchd.
</span></span></pre></div>
<a id="twexttrunktwextpythonlogpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/python/log.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/python/log.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/python/log.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx">     &quot;LogLevelFilterPredicate&quot;,
</span><span class="cx">     &quot;LegacyLogObserver&quot;,
</span><span class="cx">     &quot;replaceTwistedLoggers&quot;,
</span><del>-    #&quot;StandardIOObserver&quot;,
</del><ins>+    # &quot;StandardIOObserver&quot;,
</ins><span class="cx"> ]
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -81,7 +81,6 @@
</span><span class="cx"> import twisted.python.log
</span><span class="cx"> from twisted.python.log import msg as twistedLogMessage
</span><span class="cx"> from twisted.python.log import addObserver, removeObserver
</span><del>-from twisted.python.log import ILogObserver as ILegacyLogObserver
</del><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -349,7 +348,7 @@
</span><span class="cx">                 invalidLevel=level,
</span><span class="cx">                 logger=self,
</span><span class="cx">             )
</span><del>-            #level = LogLevel.error
</del><ins>+            # level = LogLevel.error
</ins><span class="cx">             # FIXME: continue to emit?
</span><span class="cx">             return
</span><span class="cx"> 
</span><span class="lines">@@ -603,7 +602,7 @@
</span><span class="cx">         @param predicates: an ordered iterable of predicates to apply
</span><span class="cx">             to events before forwarding to the wrapped observer.
</span><span class="cx">         &quot;&quot;&quot;
</span><del>-        self.observer   = observer
</del><ins>+        self.observer = observer
</ins><span class="cx">         self.predicates = list(predicates)
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -701,7 +700,7 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">     def __call__(self, event):
</span><del>-        level     = event.get(&quot;log_level&quot;, None)
</del><ins>+        level = event.get(&quot;log_level&quot;, None)
</ins><span class="cx">         namespace = event.get(&quot;log_namespace&quot;, None)
</span><span class="cx"> 
</span><span class="cx">         if (
</span><span class="lines">@@ -819,10 +818,11 @@
</span><span class="cx">     def __init__(self):
</span><span class="cx">         self.legacyLogObserver = LegacyLogObserver(twistedLogMessage)
</span><span class="cx">         self.filteredPublisher = LogPublisher(self.legacyLogObserver)
</span><del>-        self.levels            = LogLevelFilterPredicate()
-        self.filters           = FilteringLogObserver(self.filteredPublisher,
-                                                      (self.levels,))
-        self.rootPublisher     = LogPublisher(self.filters)
</del><ins>+        self.levels = LogLevelFilterPredicate()
+        self.filters = FilteringLogObserver(
+            self.filteredPublisher, (self.levels,)
+        )
+        self.rootPublisher = LogPublisher(self.filters)
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">     def addObserver(self, observer, filtered=True):
</span><span class="lines">@@ -982,8 +982,6 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
-######################################################################
</del><span class="cx"> # FIXME: This may not be needed; look into removing it.
</span><span class="cx"> 
</span><span class="cx"> class StandardIOObserver(object):
</span></span></pre></div>
<a id="twexttrunktwextpythonparallelpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/python/parallel.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/python/parallel.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/python/parallel.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -89,6 +89,3 @@
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         return (DeferredList(self.activeDeferreds)
</span><span class="cx">                 .addCallback(lambda ignored: None))
</span><del>-
-
-
</del></span></pre></div>
<a id="twexttrunktwextpythontestpullpipepy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/python/test/pullpipe.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/python/test/pullpipe.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/python/test/pullpipe.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -18,9 +18,8 @@
</span><span class="cx"> 
</span><span class="cx"> if __name__ == '__main__':
</span><span class="cx">     from twext.python.sendfd import recvfd
</span><del>-    import sys, os
</del><ins>+    import sys
+    import os
</ins><span class="cx">     fd, description = recvfd(int(sys.argv[1]))
</span><span class="cx">     os.write(fd, &quot;Test fixture data: %s.\n&quot; % (description,))
</span><span class="cx">     os.close(fd)
</span><del>-
-    
</del></span></pre></div>
<a id="twexttrunktwextpythontesttest_filepathpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/python/test/test_filepath.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/python/test/test_filepath.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/python/test/test_filepath.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -71,7 +71,8 @@
</span><span class="cx">         observe exceptions raised by the replacement.  This verifies that the
</span><span class="cx">         test patching done here is actually testing something.
</span><span class="cx">         &quot;&quot;&quot;
</span><del>-        class CustomException(Exception): &quot;Just for testing.&quot;
</del><ins>+        class CustomException(Exception):
+            &quot;Just for testing.&quot;
</ins><span class="cx">         def blowUp(dirname):
</span><span class="cx">             raise CustomException()
</span><span class="cx">         self.cfp._listdir = blowUp
</span><span class="lines">@@ -93,9 +94,10 @@
</span><span class="cx">         self.cfp._listdir = raiseEINVAL
</span><span class="cx">         self.assertEquals(self.cfp.listdir(), ['a', 'b', 'c'])
</span><span class="cx">         self.assertEquals(self.cfp.children(), [
</span><del>-                CachingFilePath(pathjoin(self.cfp.path, 'a')),
-                CachingFilePath(pathjoin(self.cfp.path, 'b')),
-                CachingFilePath(pathjoin(self.cfp.path, 'c')),])
</del><ins>+            CachingFilePath(pathjoin(self.cfp.path, 'a')),
+            CachingFilePath(pathjoin(self.cfp.path, 'b')),
+            CachingFilePath(pathjoin(self.cfp.path, 'c')),
+        ])
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">     def requireTimePassed(self, filenames):
</span><span class="lines">@@ -128,9 +130,12 @@
</span><span class="cx">                 current += value
</span><span class="cx">                 yield current
</span><span class="cx"> 
</span><del>-        self.assertEquals(self.calls,
-                          list(cumulative(
-                    [0.0, 0.1, 0.2, 0.4, 0.8, 1.6, 3.2, 5.0, 5.0])))
</del><ins>+        self.assertEquals(
+            self.calls,
+            list(cumulative(
+                [0.0, 0.1, 0.2, 0.4, 0.8, 1.6, 3.2, 5.0, 5.0]
+            ))
+        )
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">     def test_backoff(self):
</span><span class="lines">@@ -148,7 +153,7 @@
</span><span class="cx">         terms of L{FilePath.listdir}, so we need to verify that it will also
</span><span class="cx">         retry.
</span><span class="cx">         &quot;&quot;&quot;
</span><del>-        filenames = [self.cfp.basename()+'.a',
</del><ins>+        filenames = [self.cfp.basename() + '.a',
</ins><span class="cx">                      self.cfp.basename() + '.b',
</span><span class="cx">                      self.cfp.basename() + '.c']
</span><span class="cx">         siblings = map(self.cfp.sibling, filenames)
</span></span></pre></div>
<a id="twexttrunktwextpythontesttest_launchdpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/python/test/test_launchd.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/python/test/test_launchd.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/python/test/test_launchd.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -18,7 +18,11 @@
</span><span class="cx"> Tests for L{twext.python.launchd}.
</span><span class="cx"> &quot;&quot;&quot;
</span><span class="cx"> 
</span><del>-import sys, os, plistlib, socket, json
</del><ins>+import json
+import os
+import plistlib
+import socket
+import sys
</ins><span class="cx"> 
</span><span class="cx"> if __name__ == '__main__':
</span><span class="cx">     # This module is loaded as a launchd job by test-cases below; the following
</span><span class="lines">@@ -151,9 +155,10 @@
</span><span class="cx">         L{plainPython} will convert a L{_LaunchDictionary} into a Python
</span><span class="cx">         dictionary.
</span><span class="cx">         &quot;&quot;&quot;
</span><del>-        self.assertEquals({b&quot;alpha&quot;: b&quot;alpha-value&quot;, b&quot;beta&quot;: b&quot;beta-value&quot;,
-                           b&quot;gamma&quot;: 3},
-                           plainPython(_LaunchDictionary(self.testDict)))
</del><ins>+        self.assertEquals(
+            {b&quot;alpha&quot;: b&quot;alpha-value&quot;, b&quot;beta&quot;: b&quot;beta-value&quot;, b&quot;gamma&quot;: 3},
+            plainPython(_LaunchDictionary(self.testDict))
+        )
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">     def test_plainPythonNested(self):
</span><span class="lines">@@ -165,11 +170,14 @@
</span><span class="cx">         lib.launch_data_dict_insert(otherDict,
</span><span class="cx">                                     lib.launch_data_new_string(&quot;bar&quot;), &quot;foo&quot;)
</span><span class="cx">         lib.launch_data_dict_insert(self.testDict, otherDict, &quot;delta&quot;)
</span><del>-        self.assertEquals({b&quot;alpha&quot;: b&quot;alpha-value&quot;, b&quot;beta&quot;: b&quot;beta-value&quot;,
-                           b&quot;gamma&quot;: 3, b&quot;delta&quot;: {b&quot;foo&quot;: b&quot;bar&quot;}},
-                           plainPython(_LaunchDictionary(self.testDict)))
</del><ins>+        self.assertEquals(
+            {b&quot;alpha&quot;: b&quot;alpha-value&quot;, b&quot;beta&quot;: b&quot;beta-value&quot;,
+             b&quot;gamma&quot;: 3, b&quot;delta&quot;: {b&quot;foo&quot;: b&quot;bar&quot;}},
+            plainPython(_LaunchDictionary(self.testDict))
+        )
</ins><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> class ArrayTests(TestCase):
</span><span class="cx">     &quot;&quot;&quot;
</span><span class="cx">     Tests for L{_LaunchArray}
</span><span class="lines">@@ -393,5 +401,3 @@
</span><span class="cx">         err = self.stderr.getContent()
</span><span class="cx">         if 'Traceback' in err:
</span><span class="cx">             self.fail(err)
</span><del>-
-
</del></span></pre></div>
<a id="twexttrunktwextpythontesttest_logpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/python/test/test_log.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/python/test/test_log.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/python/test/test_log.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -32,9 +32,9 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-defaultLogLevel         = LogLevelFilterPredicate().defaultLogLevel
-clearLogLevels          = Logger.publisher.levels.clearLogLevels
-logLevelForNamespace    = Logger.publisher.levels.logLevelForNamespace
</del><ins>+defaultLogLevel = LogLevelFilterPredicate().defaultLogLevel
+clearLogLevels = Logger.publisher.levels.clearLogLevels
+logLevelForNamespace = Logger.publisher.levels.logLevelForNamespace
</ins><span class="cx"> setLogLevelForNamespace = Logger.publisher.levels.setLogLevelForNamespace
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -42,12 +42,12 @@
</span><span class="cx"> class TestLogger(Logger):
</span><span class="cx">     def emit(self, level, format=None, **kwargs):
</span><span class="cx">         if False:
</span><del>-            print &quot;*&quot;*60
</del><ins>+            print &quot;*&quot; * 60
</ins><span class="cx">             print &quot;level =&quot;, level
</span><span class="cx">             print &quot;format =&quot;, format
</span><span class="cx">             for key, value in kwargs.items():
</span><span class="cx">                 print key, &quot;=&quot;, value
</span><del>-            print &quot;*&quot;*60
</del><ins>+            print &quot;*&quot; * 60
</ins><span class="cx"> 
</span><span class="cx">         def observer(event):
</span><span class="cx">             self.event = event
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx">             twistedLogging.removeObserver(observer)
</span><span class="cx"> 
</span><span class="cx">         self.emitted = {
</span><del>-            &quot;level&quot;:  level,
</del><ins>+            &quot;level&quot;: level,
</ins><span class="cx">             &quot;format&quot;: format,
</span><span class="cx">             &quot;kwargs&quot;: kwargs,
</span><span class="cx">         }
</span><span class="lines">@@ -281,7 +281,7 @@
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         Formatting an event that's just plain out to get us.
</span><span class="cx">         &quot;&quot;&quot;
</span><del>-        event = dict(log_format=&quot;{evil()}&quot;, evil=lambda: 1/0)
</del><ins>+        event = dict(log_format=&quot;{evil()}&quot;, evil=lambda: 1 / 0)
</ins><span class="cx">         result = formatEvent(event)
</span><span class="cx"> 
</span><span class="cx">         self.assertIn(&quot;Unable to format event&quot;, result)
</span><span class="lines">@@ -294,7 +294,7 @@
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         event = {
</span><span class="cx">             &quot;log_format&quot;: &quot;{evil()}&quot;,
</span><del>-            &quot;evil&quot;: lambda: 1/0,
</del><ins>+            &quot;evil&quot;: lambda: 1 / 0,
</ins><span class="cx">             Unformattable(): &quot;gurk&quot;,
</span><span class="cx">         }
</span><span class="cx">         result = formatEvent(event)
</span><span class="lines">@@ -309,7 +309,7 @@
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         event = dict(
</span><span class="cx">             log_format=&quot;{evil()}&quot;,
</span><del>-            evil=lambda: 1/0,
</del><ins>+            evil=lambda: 1 / 0,
</ins><span class="cx">             gurk=Unformattable(),
</span><span class="cx">         )
</span><span class="cx">         result = formatEvent(event)
</span><span class="lines">@@ -324,7 +324,7 @@
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         event = dict(
</span><span class="cx">             log_format=&quot;{evil()}&quot;,
</span><del>-            evil=lambda: 1/0,
</del><ins>+            evil=lambda: 1 / 0,
</ins><span class="cx">             recoverable=&quot;okay&quot;,
</span><span class="cx">         )
</span><span class="cx">         # Call formatUnformattableEvent() directly with a bogus exception.
</span><span class="lines">@@ -723,7 +723,7 @@
</span><span class="cx">     def test_filteredObserverNoFilteringKeys(self):
</span><span class="cx">         event_debug = dict(log_level=LogLevel.debug)
</span><span class="cx">         event_error = dict(log_level=LogLevel.error)
</span><del>-        event_none  = dict()
</del><ins>+        event_none = dict()
</ins><span class="cx">         events = []
</span><span class="cx"> 
</span><span class="cx">         observer = lambda e: events.append(e)
</span><span class="lines">@@ -1026,4 +1026,4 @@
</span><span class="cx">     &quot;&quot;&quot;
</span><span class="cx"> 
</span><span class="cx">     def __repr__(self):
</span><del>-        return str(1/0)
</del><ins>+        return str(1 / 0)
</ins></span></pre></div>
<a id="twexttrunktwextpythontesttest_parallelpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/python/test/test_parallel.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/python/test/test_parallel.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/python/test/test_parallel.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -59,5 +59,3 @@
</span><span class="cx">         d1.callback(4)
</span><span class="cx">         self.assertEqual(done, [None, None, None, None])
</span><span class="cx">         self.assertEqual(allDone, [None])
</span><del>-
-
</del></span></pre></div>
<a id="twexttrunktwextwhodirectorypy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/who/directory.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/who/directory.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/who/directory.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -160,7 +160,7 @@
</span><span class="cx">             supported by this directory service.
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         if records is not None:
</span><del>-            for record in records:
</del><ins>+            for _ignore_record in records:
</ins><span class="cx">                 break
</span><span class="cx">             else:
</span><span class="cx">                 return succeed(())
</span><span class="lines">@@ -311,13 +311,13 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">     def updateRecords(self, records, create=False):
</span><del>-        for record in records:
</del><ins>+        for _ignore_record in records:
</ins><span class="cx">             return fail(NotAllowedError(&quot;Record updates not allowed.&quot;))
</span><span class="cx">         return succeed(None)
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">     def removeRecords(self, uids):
</span><del>-        for uid in uids:
</del><ins>+        for _ignore_uid in uids:
</ins><span class="cx">             return fail(NotAllowedError(&quot;Record removal not allowed.&quot;))
</span><span class="cx">         return succeed(None)
</span><span class="cx"> 
</span></span></pre></div>
<a id="twexttrunktwextwhoidirectorypy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/who/idirectory.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/who/idirectory.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/who/idirectory.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -277,7 +277,6 @@
</span><span class="cx">         @rtype: iterable of L{NamedConstant}s
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     def recordsFromExpression(expression, recordTypes=None):
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         Find records matching an expression.
</span><span class="lines">@@ -296,7 +295,6 @@
</span><span class="cx">             supported by this directory service.
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     def recordsWithFieldValue(fieldName, value):
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         Find records that have the given field name with the given
</span><span class="lines">@@ -312,7 +310,6 @@
</span><span class="cx">         @rtype: deferred iterable of L{IDirectoryRecord}s
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     def recordWithUID(uid):
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         Find the record that has the given UID.
</span><span class="lines">@@ -324,7 +321,6 @@
</span><span class="cx">         @rtype: deferred L{IDirectoryRecord}s or C{None}
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     def recordWithGUID(guid):
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         Find the record that has the given GUID.
</span><span class="lines">@@ -336,7 +332,6 @@
</span><span class="cx">         @rtype: deferred L{IDirectoryRecord}s or C{None}
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     def recordsWithRecordType(recordType):
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         Find the records that have the given record type.
</span><span class="lines">@@ -348,7 +343,6 @@
</span><span class="cx">         @rtype: deferred iterable of L{IDirectoryRecord}s
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     def recordWithShortName(recordType, shortName):
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         Find the record that has the given record type and short name.
</span><span class="lines">@@ -363,7 +357,6 @@
</span><span class="cx">         @rtype: deferred L{IDirectoryRecord}s or C{None}
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     def recordsWithEmailAddress(emailAddress):
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         Find the records that have the given email address.
</span><span class="lines">@@ -375,7 +368,6 @@
</span><span class="cx">         @rtype: deferred iterable of L{IDirectoryRecord}s
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     def updateRecords(records, create=False):
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         Updates existing directory records.
</span><span class="lines">@@ -393,7 +385,6 @@
</span><span class="cx">             directory service.
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     def removeRecords(uids):
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         Removes the records with the given UIDs.
</span><span class="lines">@@ -452,7 +443,6 @@
</span><span class="cx">             direct members of this group.
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     def groups():
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         Find the group records that this record is a member of.  Only
</span><span class="lines">@@ -463,7 +453,6 @@
</span><span class="cx">             groups that this record is a member of.
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     def addMembers(members):
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         Adds the members to this record.
</span><span class="lines">@@ -472,7 +461,6 @@
</span><span class="cx">         @type members: An iterable of L{IDirectoryRecord}s.
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     def removeMembers(members):
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         Removes the members from this record.
</span><span class="lines">@@ -481,7 +469,6 @@
</span><span class="cx">         @type members: An iterable of L{IDirectoryRecord}s.
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     def setMembers(members):
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         Replaces the current members of this record.
</span><span class="lines">@@ -491,6 +478,7 @@
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> class IPlaintextPasswordVerifier(Interface):
</span><span class="cx">     &quot;&quot;&quot;
</span><span class="cx">     Provides a way to verify a plaintext password as provided by a client.
</span></span></pre></div>
<a id="twexttrunktwextwhoindexpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/who/index.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/who/index.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/who/index.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -255,7 +255,7 @@
</span><span class="cx">             )
</span><span class="cx"> 
</span><span class="cx">         matchValue = normalize(expression.fieldValue)
</span><del>-        matchType  = expression.matchType
</del><ins>+        matchType = expression.matchType
</ins><span class="cx"> 
</span><span class="cx">         if matchType == MatchType.startsWith:
</span><span class="cx">             indexKeys = (
</span></span></pre></div>
<a id="twexttrunktwextwholdap_servicepy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/who/ldap/_service.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/who/ldap/_service.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/who/ldap/_service.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -412,7 +412,6 @@
</span><span class="cx">             returnValue(False)
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     @inlineCallbacks
</span><span class="cx">     def _recordsFromQueryString(self, queryString, recordTypes=None):
</span><span class="cx">         records = []
</span><span class="lines">@@ -669,6 +668,7 @@
</span><span class="cx">     return new
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> def recordTypeForDN(baseDnStr, recordTypeSchemas, dnStr):
</span><span class="cx">     &quot;&quot;&quot;
</span><span class="cx">     Examine a DN to determine which recordType it belongs to
</span><span class="lines">@@ -695,6 +695,7 @@
</span><span class="cx">     return None
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> def dnContainedIn(child, parent):
</span><span class="cx">     &quot;&quot;&quot;
</span><span class="cx">     Return True if child dn is contained within parent dn, otherwise False.
</span><span class="lines">@@ -702,6 +703,7 @@
</span><span class="cx">     return child[-len(parent):] == parent
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> def recordTypeForRecordData(recordTypeSchemas, recordData):
</span><span class="cx">     &quot;&quot;&quot;
</span><span class="cx">     Given info about record types, determine the record type for a blob of
</span></span></pre></div>
<a id="twexttrunktwextwholdap_utilpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/who/ldap/_util.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/who/ldap/_util.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/who/ldap/_util.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -49,6 +49,7 @@
</span><span class="cx">         return u&quot;&quot;
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> def ldapQueryStringFromMatchExpression(
</span><span class="cx">     expression, fieldNameToAttributesMap, recordTypeSchemas
</span><span class="cx"> ):
</span><span class="lines">@@ -153,6 +154,7 @@
</span><span class="cx">     raise AssertionError(&quot;We shouldn't be here.&quot;)
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> def ldapQueryStringFromCompoundExpression(
</span><span class="cx">     expression, fieldNameToAttributesMap, recordTypeSchemas
</span><span class="cx"> ):
</span><span class="lines">@@ -194,6 +196,7 @@
</span><span class="cx">     return ldapQueryStringFromQueryStrings(operand, queryStrings)
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> def ldapQueryStringFromExpression(
</span><span class="cx">     expression, fieldNameToAttributesMap, recordTypeSchemas
</span><span class="cx"> ):
</span></span></pre></div>
<a id="twexttrunktwextwholdaptesttest_servicepy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/who/ldap/test/test_service.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/who/ldap/test/test_service.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/who/ldap/test/test_service.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -46,7 +46,7 @@
</span><span class="cx"> from twisted.trial import unittest
</span><span class="cx"> from twisted.trial.unittest import SkipTest
</span><span class="cx"> 
</span><del>-from ...idirectory import QueryNotSupportedError, FieldName as BaseFieldName
</del><ins>+from ...idirectory import FieldName as BaseFieldName
</ins><span class="cx"> from .._service import (
</span><span class="cx">     DEFAULT_FIELDNAME_ATTRIBUTE_MAP, DEFAULT_RECORDTYPE_SCHEMAS,
</span><span class="cx">     LDAPBindAuthError,
</span><span class="lines">@@ -62,7 +62,6 @@
</span><span class="cx">     DirectoryServiceRealmTestMixIn,
</span><span class="cx">     DirectoryServiceQueryTestMixIn as BaseDirectoryServiceQueryTestMixIn,
</span><span class="cx">     DirectoryServiceMutableTestMixIn as BaseDirectoryServiceMutableTestMixIn,
</span><del>-    UnknownConstant,
</del><span class="cx"> )
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -168,6 +167,7 @@
</span><span class="cx">     test_recordsWithRecordType_unknown.todo = &quot;After this test runs, other tests fail, need to investigate&quot;
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> class DirectoryServiceQueryTestMixIn(BaseDirectoryServiceQueryTestMixIn):
</span><span class="cx">     def test_queryNot(self):
</span><span class="cx">         return BaseDirectoryServiceQueryTestMixIn.test_queryNot(self)
</span><span class="lines">@@ -390,6 +390,7 @@
</span><span class="cx"> 
</span><span class="cx">         return unicode(obj)
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx">     def tuplify(record, fieldName):
</span><span class="cx">         fieldValue = record.fields[fieldName]
</span><span class="cx"> 
</span><span class="lines">@@ -441,6 +442,7 @@
</span><span class="cx">     last = None
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> def mockldap_parse(self):
</span><span class="cx">     match = self.TEST_RE.match(self.content)
</span><span class="cx"> 
</span><span class="lines">@@ -457,6 +459,7 @@
</span><span class="cx">             u&quot;Operation %r is not supported&quot; % (self.op,)
</span><span class="cx">         )
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx">     def unescape(value):
</span><span class="cx">         return self.UNESCAPE_RE.sub(lambda m: chr(int(m.group(1), 16)), value)
</span><span class="cx"> 
</span><span class="lines">@@ -481,6 +484,7 @@
</span><span class="cx">         self.value = unescape(valueExpression)
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> def mockldap_matches(self, dn, attrs):
</span><span class="cx">     values = attrs.get(self.attr)
</span><span class="cx"> 
</span></span></pre></div>
<a id="twexttrunktwextwholdaptesttest_utilpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/who/ldap/test/test_util.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/who/ldap/test/test_util.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/who/ldap/test/test_util.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -375,6 +375,7 @@
</span><span class="cx">             MatchFlags.none, expected
</span><span class="cx">         )
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx">     def test_queryStringFromMatchExpression_multipleRecordType_not(self):
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         Match expression when the queried field name is the record type field,
</span></span></pre></div>
<a id="twexttrunktwextwhoopendirectory_constantspy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/who/opendirectory/_constants.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/who/opendirectory/_constants.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/who/opendirectory/_constants.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -54,6 +54,7 @@
</span><span class="cx">     nestedGroupsUIDs.multiValue = True
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> #
</span><span class="cx"> # OD constants
</span><span class="cx"> #
</span><span class="lines">@@ -71,7 +72,7 @@
</span><span class="cx">     group = ValueConstant(u&quot;dsRecTypeStandard:Groups&quot;)
</span><span class="cx">     group.recordType = BaseRecordType.group
</span><span class="cx"> 
</span><del>-    #location = ValueConstant(u&quot;dsRecTypeStandard:Locations&quot;)
</del><ins>+    # location = ValueConstant(u&quot;dsRecTypeStandard:Locations&quot;)
</ins><span class="cx">     place = ValueConstant(u&quot;dsRecTypeStandard:Places&quot;)
</span><span class="cx"> 
</span><span class="cx">     resource = ValueConstant(u&quot;dsRecTypeStandard:Resources&quot;)
</span></span></pre></div>
<a id="twexttrunktwextwhoopendirectory_scriptspy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/who/opendirectory/_scripts.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/who/opendirectory/_scripts.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/who/opendirectory/_scripts.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -91,6 +91,7 @@
</span><span class="cx">     return HA1.encode(&quot;hex&quot;)
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> # DigestCalcResponse
</span><span class="cx"> def calcResponse(
</span><span class="cx">     HA1,
</span><span class="lines">@@ -129,6 +130,7 @@
</span><span class="cx">     return respHash
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> @inlineCallbacks
</span><span class="cx"> def authUsernamePassword(username, password):
</span><span class="cx">     # Authenticate using simple password
</span><span class="lines">@@ -148,14 +150,14 @@
</span><span class="cx">     # Authenticate using Digest
</span><span class="cx"> 
</span><span class="cx">     algorithm = &quot;md5&quot;  # &quot;md5-sess&quot;
</span><del>-    cnonce    = &quot;/rrD6TqPA3lHRmg+fw/vyU6oWoQgzK7h9yWrsCmv/lE=&quot;
-    entity    = &quot;00000000000000000000000000000000&quot;
-    method    = &quot;GET&quot;
-    nc        = &quot;00000001&quot;
-    nonce     = &quot;128446648710842461101646794502&quot;
-    qop       = None
-    realm     = &quot;host.example.com&quot;
-    uri       = &quot;http://host.example.com&quot;
</del><ins>+    cnonce = &quot;/rrD6TqPA3lHRmg+fw/vyU6oWoQgzK7h9yWrsCmv/lE=&quot;
+    entity = &quot;00000000000000000000000000000000&quot;
+    method = &quot;GET&quot;
+    nc = &quot;00000001&quot;
+    nonce = &quot;128446648710842461101646794502&quot;
+    qop = None
+    realm = &quot;host.example.com&quot;
+    uri = &quot;http://host.example.com&quot;
</ins><span class="cx"> 
</span><span class="cx">     responseHash = calcResponse(
</span><span class="cx">         calcHA1(
</span><span class="lines">@@ -187,6 +189,7 @@
</span><span class="cx">         print(&quot;Via DigestedCredentials, could not authenticate&quot;)
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> @inlineCallbacks
</span><span class="cx"> def lookup(shortNames):
</span><span class="cx">     service = DirectoryService()
</span><span class="lines">@@ -236,6 +239,7 @@
</span><span class="cx">             print(record.description())
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> def run_auth():
</span><span class="cx">     username = raw_input(&quot;Username: &quot;)
</span><span class="cx">     if username:
</span><span class="lines">@@ -244,5 +248,6 @@
</span><span class="cx">             authUsernamePassword(username, password)
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> def run_lookup():
</span><span class="cx">     lookup(sys.argv[1:])
</span></span></pre></div>
<a id="twexttrunktwextwhoopendirectory_servicepy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/who/opendirectory/_service.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/who/opendirectory/_service.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/who/opendirectory/_service.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -93,6 +93,7 @@
</span><span class="cx">     &quot;&quot;&quot;
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> class UnsupportedRecordTypeError(OpenDirectoryError):
</span><span class="cx">     &quot;&quot;&quot;
</span><span class="cx">     Record type not supported by service.
</span><span class="lines">@@ -144,7 +145,6 @@
</span><span class="cx">         return u&quot;OpenDirectory Node {self.nodeName!r}&quot;.format(self=self)
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     @property
</span><span class="cx">     def node(self):
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="lines">@@ -410,7 +410,7 @@
</span><span class="cx">         else:
</span><span class="cx">             node = self.node
</span><span class="cx"> 
</span><del>-        queryString, expressionRecordTypes = (
</del><ins>+        queryString, _ignore_expressionRecordTypes = (
</ins><span class="cx">             self._queryStringAndRecordTypesFromExpression(expression)
</span><span class="cx">         )
</span><span class="cx"> 
</span><span class="lines">@@ -746,7 +746,6 @@
</span><span class="cx">         returnValue(results)
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     @inlineCallbacks
</span><span class="cx">     def localRecordsFromCompoundExpression(self, expression, recordTypes=None):
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="lines">@@ -869,6 +868,7 @@
</span><span class="cx">             returnValue(None)
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> @implementer(IPlaintextPasswordVerifier, IHTTPDigestVerifier)
</span><span class="cx"> class DirectoryRecord(BaseDirectoryRecord):
</span><span class="cx">     &quot;&quot;&quot;
</span><span class="lines">@@ -1016,7 +1016,7 @@
</span><span class="cx">             response=response
</span><span class="cx">         )
</span><span class="cx"> 
</span><del>-        result, m1, m2, error = self._odRecord.verifyExtendedWithAuthenticationType_authenticationItems_continueItems_context_error_(
</del><ins>+        result, _ignore_m1, _ignore_m2, error = self._odRecord.verifyExtendedWithAuthenticationType_authenticationItems_continueItems_context_error_(
</ins><span class="cx">             ODAuthMethod.digestMD5.value,
</span><span class="cx">             [username, challenge, responseArg, method],
</span><span class="cx">             None, None, None
</span></span></pre></div>
<a id="twexttrunktwextwhoopendirectorytesttest_servicepy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/who/opendirectory/test/test_service.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/who/opendirectory/test/test_service.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/who/opendirectory/test/test_service.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -351,8 +351,8 @@
</span><span class="cx">         self.assertEquals(
</span><span class="cx">             queryString,
</span><span class="cx">             u&quot;(&quot;
</span><del>-                u&quot;|(dsAttrTypeStandard:RecordName=xxxxx)&quot;
-                u&quot;(dsAttrTypeStandard:RecordName=yyyyy)&quot;
</del><ins>+            u&quot;|(dsAttrTypeStandard:RecordName=xxxxx)&quot;
+            u&quot;(dsAttrTypeStandard:RecordName=yyyyy)&quot;
</ins><span class="cx">             u&quot;)&quot;
</span><span class="cx">         )
</span><span class="cx">         # NOR expression
</span><span class="lines">@@ -391,8 +391,8 @@
</span><span class="cx">         self.assertEquals(
</span><span class="cx">             queryString,
</span><span class="cx">             u&quot;(&quot;
</span><del>-                u&quot;|(dsAttrTypeStandard:RecordName=xxxxx)&quot;
-                u&quot;(dsAttrTypeStandard:RecordName=yyyyy)&quot;
</del><ins>+            u&quot;|(dsAttrTypeStandard:RecordName=xxxxx)&quot;
+            u&quot;(dsAttrTypeStandard:RecordName=yyyyy)&quot;
</ins><span class="cx">             u&quot;)&quot;
</span><span class="cx">         )
</span><span class="cx"> 
</span></span></pre></div>
<a id="twexttrunktwextwhotesttest_directorypy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/who/test/test_directory.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/who/test/test_directory.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/who/test/test_directory.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -660,7 +660,7 @@
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         L{DirectoryRecord} initialization sets service and fields.
</span><span class="cx">         &quot;&quot;&quot;
</span><del>-        service  = self.service()
</del><ins>+        service = self.service()
</ins><span class="cx">         wsanchez = self.makeRecord(self.fields_wsanchez, service=service)
</span><span class="cx"> 
</span><span class="cx">         self.assertEquals(wsanchez.service, service)
</span><span class="lines">@@ -758,7 +758,7 @@
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         Verify a value of None is allowed
</span><span class="cx">         &quot;&quot;&quot;
</span><del>-        service  = self.service()
</del><ins>+        service = self.service()
</ins><span class="cx">         record = self.makeRecord(self.fields_none_password, service=service)
</span><span class="cx"> 
</span><span class="cx">         self.assertEquals(record.password, None)
</span><span class="lines">@@ -888,10 +888,10 @@
</span><span class="cx"> 
</span><span class="cx">         plugh = self.serviceClass(u&quot;plugh&quot;)
</span><span class="cx"> 
</span><del>-        wsanchez    = self.makeRecord(self.fields_wsanchez)
</del><ins>+        wsanchez = self.makeRecord(self.fields_wsanchez)
</ins><span class="cx">         wsanchezmod = self.makeRecord(self.fields_wsanchez, service=plugh)
</span><del>-        glyph       = self.makeRecord(self.fields_glyph)
-        glyphmod    = self.makeRecord(fields_glyphmod)
</del><ins>+        glyph = self.makeRecord(self.fields_glyph)
+        glyphmod = self.makeRecord(fields_glyphmod)
</ins><span class="cx"> 
</span><span class="cx">         self.assertEquals(wsanchez, wsanchez)
</span><span class="cx">         self.assertNotEqual(wsanchez, glyph)
</span></span></pre></div>
<a id="twexttrunktwextwhotesttest_indexpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/who/test/test_index.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/who/test/test_index.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/who/test/test_index.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -70,6 +70,7 @@
</span><span class="cx">     return NoLoadDirectoryService
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> class BaseDirectoryServiceTest(test_directory.BaseDirectoryServiceTest):
</span><span class="cx">     &quot;&quot;&quot;
</span><span class="cx">     Tests for indexed directory services.
</span><span class="lines">@@ -86,6 +87,7 @@
</span><span class="cx"> 
</span><span class="cx">         return service
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx">     def test_indexRecords_positive(self):
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         L{DirectoryService.indexRecords} ensures all record data is in the
</span><span class="lines">@@ -508,9 +510,9 @@
</span><span class="cx">     if not index:
</span><span class="cx">         return True
</span><span class="cx"> 
</span><del>-    for fieldName, fieldIndex in index.iteritems():
-        for fieldValue, records in fieldIndex.iteritems():
-            for record in records:
</del><ins>+    for _ignore_fieldName, fieldIndex in index.iteritems():
+        for _ignore_fieldValue, records in fieldIndex.iteritems():
+            for _ignore_record in records:
</ins><span class="cx">                 return False
</span><span class="cx"> 
</span><span class="cx">     return True
</span></span></pre></div>
<a id="twexttrunktwextwhotesttest_utilpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/who/test/test_util.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/who/test/test_util.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/who/test/test_util.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -45,6 +45,7 @@
</span><span class="cx">         return False
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> class MoreTools(Names):
</span><span class="cx">     saw = NamedConstant()
</span><span class="cx">     saw.description = u&quot;z maker&quot;
</span><span class="lines">@@ -53,6 +54,7 @@
</span><span class="cx">     mallet.description = u&quot;soft pounder&quot;
</span><span class="cx"> 
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> class Instruments(Names):
</span><span class="cx">     hammer = NamedConstant()
</span><span class="cx">     chisel = NamedConstant()
</span><span class="lines">@@ -225,7 +227,6 @@
</span><span class="cx">         )
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     def test_lookupByName(self):
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         Constants are assessible via L{ConstantsContainer.lookupByName}.
</span><span class="lines">@@ -304,6 +305,7 @@
</span><span class="cx">         self.assertEquals(u&quot;red|green&quot;, describe(Switches.r | Switches.g))
</span><span class="cx">         self.assertEquals(u&quot;blue|black&quot;, describe(Switches.b | Switches.black))
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx">     def test_describeObject(self):
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         L{describe} will cast non-cosntant objects to L{unicode}.
</span></span></pre></div>
<a id="twexttrunktwextwhotesttest_xmlpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/who/test/test_xml.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/who/test/test_xml.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/who/test/test_xml.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -892,6 +892,7 @@
</span><span class="cx">             )
</span><span class="cx">         )
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx">     @inlineCallbacks
</span><span class="cx">     def test_memberships(self):
</span><span class="cx">         service = self.service()
</span></span></pre></div>
<a id="twexttrunktwextwhoxmlpy"></a>
<div class="modfile"><h4>Modified: twext/trunk/twext/who/xml.py (13806 => 13807)</h4>
<pre class="diff"><span>
<span class="info">--- twext/trunk/twext/who/xml.py        2014-07-31 18:35:53 UTC (rev 13806)
+++ twext/trunk/twext/who/xml.py        2014-07-31 19:18:20 UTC (rev 13807)
</span><span class="lines">@@ -80,7 +80,7 @@
</span><span class="cx">     # Schema hierarchy
</span><span class="cx"> 
</span><span class="cx">     directory = ValueConstant(u&quot;directory&quot;)
</span><del>-    record    = ValueConstant(u&quot;record&quot;)
</del><ins>+    record = ValueConstant(u&quot;record&quot;)
</ins><span class="cx"> 
</span><span class="cx">     # Field names
</span><span class="cx"> 
</span><span class="lines">@@ -112,7 +112,7 @@
</span><span class="cx">     XML attribute names.
</span><span class="cx">     &quot;&quot;&quot;
</span><span class="cx"> 
</span><del>-    realm      = ValueConstant(u&quot;realm&quot;)
</del><ins>+    realm = ValueConstant(u&quot;realm&quot;)
</ins><span class="cx">     recordType = ValueConstant(u&quot;type&quot;)
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -144,8 +144,8 @@
</span><span class="cx">     )
</span><span class="cx"> 
</span><span class="cx">     # XML schema constants
</span><del>-    element         = Element
-    attribute       = Attribute
</del><ins>+    element = Element
+    attribute = Attribute
</ins><span class="cx">     recordTypeValue = RecordTypeValue
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -440,7 +440,6 @@
</span><span class="cx">             )
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-
</del><span class="cx">     def flush(self):
</span><span class="cx">         BaseDirectoryService.flush(self)
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>