[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[dak/master 2/2] Factor Uploaders splitting into its own function.



+ Add a test for it.

Signed-off-by: Torsten Werner <twerner@debian.org>
---
 daklib/dbconn.py              |   11 +++++++++--
 tests/test_split_uploaders.py |   16 ++++++++++++++++
 2 files changed, 25 insertions(+), 2 deletions(-)
 create mode 100755 tests/test_split_uploaders.py

diff --git a/daklib/dbconn.py b/daklib/dbconn.py
index 48dfd0d..f314b3f 100755
--- a/daklib/dbconn.py
+++ b/daklib/dbconn.py
@@ -2635,6 +2635,14 @@ __all__.append('import_metadata_into_db')
 
 ################################################################################
 
+def split_uploaders(uploaders_list):
+    '''
+    Split the Uploaders field into the individual uploaders and yield each of
+    them. Beware: email addresses might contain commas.
+    '''
+    for uploader in uploaders_list.replace(">, ", ">\t").split("\t"):
+        yield uploader.strip()
+
 @session_wrapper
 def add_dsc_to_db(u, filename, session=None):
     entry = u.pkg.files[filename]
@@ -2725,8 +2733,7 @@ def add_dsc_to_db(u, filename, session=None):
     session.refresh(source)
     source.uploaders = [source.maintainer]
     if u.pkg.dsc.has_key("uploaders"):
-        for up in u.pkg.dsc["uploaders"].replace(">, ", ">\t").split("\t"):
-            up = up.strip()
+        for up in split_uploaders(u.pkg.dsc["uploaders"]):
             source.uploaders.append(get_or_set_maintainer(up, session))
 
     session.flush()
diff --git a/tests/test_split_uploaders.py b/tests/test_split_uploaders.py
new file mode 100755
index 0000000..062fd35
--- /dev/null
+++ b/tests/test_split_uploaders.py
@@ -0,0 +1,16 @@
+#!/usr/bin/env python
+
+from base_test import DakTestCase
+
+from daklib.dbconn import split_uploaders
+
+import unittest
+
+class SplitUploadersTestCase(DakTestCase):
+    def test_main(self):
+        expected = ['"A, B" <a@b.c>', 'D E <d@e.f>']
+        l = list(split_uploaders('"A, B" <a@b.c>, D E <d@e.f>'))
+        self.assertEqual(expected, l)
+
+if __name__ == '__main__':
+    unittest.main()
-- 
1.7.2.5


Reply to: