The error being thrown by benderjab changed slightly.
[htsworkflow.git] / test / test_copier.py
index 2cb92f0bdec4fb66b0de79323e5d0f93dcbadc45..f34be14159a83e41d51f2673231dabb7859a1551 100644 (file)
@@ -1,7 +1,7 @@
 import unittest
 
 from StringIO import StringIO
-from gaworkflow import copier
+from htsworkflow.automation import copier
 
 class testCopier(unittest.TestCase):
     def test_runfolder_validate(self):
@@ -16,7 +16,7 @@ class testCopier(unittest.TestCase):
 something: unrelated
 """)
         bot = copier.CopierBot('fake', configfile=cfg)
-        self.failUnlessRaises(RuntimeError, bot.read_config)
+        self.failUnlessRaises(KeyError, bot.read_config)
         
     def test_full_config(self):
         cfg = StringIO("""[copier]        
@@ -24,7 +24,7 @@ jid: copier@example.fake
 password: badpassword
 authorized_users: user1@example.fake user2@example.fake
 rsync_password_file: ~/.sequencer
-rsync_source: /tmp/sequencer_source
+rsync_sources: /tmp/sequencer_source
 rsync_destination: /tmp/sequencer_destination
 notify_users: user3@example.fake
 # who to run to
@@ -32,16 +32,36 @@ notify_users: user3@example.fake
 """)
         c = copier.CopierBot("copier", configfile=cfg)
         c.read_config()
+        c._init_rsync()
         self.failUnlessEqual(c.jid, 'copier@example.fake')
         self.failUnlessEqual(c.cfg['password'], 'badpassword')
         self.failUnlessEqual(len(c.authorized_users), 2)
         self.failUnlessEqual(c.authorized_users[0], 'user1@example.fake')
         self.failUnlessEqual(c.authorized_users[1], 'user2@example.fake')
-        self.failUnlessEqual(c.rsync.source_base, '/tmp/sequencer_source')
+        self.failUnlessEqual(c.rsync.source_base_list[0], 
+                             '/tmp/sequencer_source/')
         self.failUnlessEqual(c.rsync.dest_base, '/tmp/sequencer_destination')
         self.failUnlessEqual(len(c.notify_users), 1)
         self.failUnlessEqual(c.notify_users[0], 'user3@example.fake')
 
+    def test_dirlist_filter(self):
+       """
+       test our dir listing parser
+       """
+       # everyone should have a root dir, and since we're not
+       # currently writing files... it should all be good
+       r = copier.rsync('/', '/', '/')
+
+       listing = [
+         'drwxrwxr-x           0 2007/12/29 12:34:56 071229_USI-EAS229_001_FC1234\n',
+         '-rwxrw-r--      123268 2007/12/29 17:39:31 2038EAAXX.rtf\n',
+         '-rwxrw-r--           6 2007/12/29 15:10:29 New Text Document.txt\n',
+       ]
+
+       result = r.list_filter(listing)
+       self.failUnlessEqual(len(result), 1)
+       self.failUnlessEqual(result[0][-1], '4')
+
 def suite():
     return unittest.makeSuite(testCopier,'test')