Rev 210: Modified Script to accept a file-like object rather than a filename. in http://bzr.daniel-watkins.co.uk/pqm/xmlrpc

Daniel Watkins daniel at daniel-watkins.co.uk
Fri Aug 1 03:03:50 BST 2008


At http://bzr.daniel-watkins.co.uk/pqm/xmlrpc

------------------------------------------------------------
revno: 210
revision-id: daniel at daniel-watkins.co.uk-20080801020213-74tyyy2qns1bk1yn
parent: daniel at daniel-watkins.co.uk-20080801015327-rl0g2fp2asiomo3q
committer: Daniel Watkins <daniel at daniel-watkins.co.uk>
branch nick: xmlrpc-validation
timestamp: Fri 2008-08-01 03:02:13 +0100
message:
  Modified Script to accept a file-like object rather than a filename.
-------------- next part --------------
=== modified file 'pqm/__init__.py'
--- a/pqm/__init__.py	2008-07-31 06:34:10 +0000
+++ b/pqm/__init__.py	2008-08-01 02:02:13 +0000
@@ -72,7 +72,7 @@
         if patches_re.match(f):
             fname=os.path.join(queuedir, f)
             submission_time = os.stat(fname)[stat.ST_MTIME]
-            patches.append((Script(fname, logger, options.verify_sigs,
+            patches.append((Script(open(fname), logger, options.verify_sigs,
                                    submission_time, branch_spec_handler,
                                    configp, options.keyring),
                             f))

=== modified file 'pqm/script.py'
--- a/pqm/script.py	2008-08-01 01:53:27 +0000
+++ b/pqm/script.py	2008-08-01 02:02:13 +0000
@@ -110,11 +110,11 @@
     # parse matcher for the debug command
     debug_re = re.compile('^debug')
 
-    def __init__(self, filename, logger, verify_sigs, submission_time,
+    def __init__(self, file, logger, verify_sigs, submission_time,
                  branch_spec_handler, configp, keyring=None):
         """Create a script for a given file."""
         self.debug = True
-        self.filename = filename
+        self.file = file
         self.logger = logger
         self.verify_sigs = verify_sigs
         self.readComplete = False
@@ -130,7 +130,8 @@
         #  something I plan on breaking in an ad hoc manner right now. The
         #  read_email and email.message_from_file and verify_sig functions
         #  need rearranging and consolidating to allow this.
-        details = read_email_from_file(self.logger, open(self.filename))
+        email_string = self.file.read()
+        details = read_email_from_string(self.logger, email_string)
         (self.sender, self.subject, self.msg, self.sig) = details
         self.signing_email = None
         if self.verify_sigs:
@@ -144,7 +145,7 @@
                                        self.logger,
                                        self._keyring)
             self.signing_email = siguid
-        self.msg = email.message_from_file(open(self.filename))
+        self.msg = email.message_from_string(email_string)
         self.sender = self.msg['From']
         self.logger.info ('sender: %s' , self.sender)
         self.logger.info ('subject: %s' , self.subject)

=== modified file 'pqm/tests/test_pqm.py'
--- a/pqm/tests/test_pqm.py	2008-07-22 17:11:49 +0000
+++ b/pqm/tests/test_pqm.py	2008-08-01 02:02:13 +0000
@@ -108,10 +108,6 @@
 
 class TestWithQueueDirectory(TestCaseWithQueue):
 
-    def testName(self):
-        patch = pqm.Script('foo.script', logging, False, 0, None, None)
-        self.assertEqual(patch.filename, 'foo.script')
-
     def getScript(self, queue, content):
         """Get a script for testing with."""
         self.build_tree_contents([('foo.script', content)])
@@ -119,7 +115,8 @@
         configp = ConfigParser()
         configp.read([queue.configFileName])
         handler = pqm.BranchSpecOptionHandler(configp)
-        return pqm.Script('foo.script', logging, False, 54, handler, configp)
+        return pqm.Script(open('foo.script'), logging, False, 54, handler,
+                          configp)
 
     def testFields(self):
         queue = self.getQueue()



More information about the bazaar-commits mailing list