summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.py2
-rw-r--r--filter.py18
-rw-r--r--test/rsync_output_sample14
-rw-r--r--test/test_pkginfo_from_rsync_output.py76
4 files changed, 52 insertions, 58 deletions
diff --git a/config.py b/config.py
index bd46688..465a8a8 100644
--- a/config.py
+++ b/config.py
@@ -82,7 +82,7 @@ class Package:
if not isinstance(x, Package):
return False
for key in self.package_info.keys():
- if x[key] != self[key]:
+ if x[key] != self.package_info[key]:
return False
else:
return True
diff --git a/filter.py b/filter.py
index ad3b33d..55ab94a 100644
--- a/filter.py
+++ b/filter.py
@@ -38,26 +38,28 @@ def pkginfo_from_rsync_output(rsync_output):
Returns:
----------
package_list -> tuple Contains Package objects. """
- package_list=list()
def package_or_link(line):
""" Take info out of filename """
location_field = 4
- pkginfo_from_filename(line.rsplit()[location_field])
+ return pkginfo_from_filename(line.rsplit()[location_field])
def do_nothing():
- pass
+ """"""
options = { "d": do_nothing,
"l": package_or_link,
"-": package_or_link,
" ": do_nothing}
+
+ package_list=list()
- for line in rsync_output.split("\n"):
- if ".pkg.tar" in line:
- pkginfo=options[line[0]](line)
- if pkginfo_:
- package_list.append(pkginfo)
+ lines=[x for x in rsync_output.split("\n") if ".pkg.tar" in x]
+
+ for line in lines:
+ pkginfo=options[line[0]](line)
+ if pkginfo:
+ package_list.append(pkginfo)
return tuple(package_list)
diff --git a/test/rsync_output_sample b/test/rsync_output_sample
new file mode 100644
index 0000000..72d9cd0
--- /dev/null
+++ b/test/rsync_output_sample
@@ -0,0 +1,14 @@
+dr-xr-sr-x 4096 2010/09/11 11:37:10 .
+-rw-r--r-- 11 2011/02/08 00:00:01 lastsync
+drwxrwxr-x 15 2010/09/11 11:28:50 community-staging
+drwxrwxr-x 30 2010/09/11 11:28:50 community-staging/os
+drwxrwxr-x 8192 2011/02/07 17:00:01 community-staging/os/i686
+lrwxrwxrwx 52 2010/12/23 16:51:01 community-staging/os/i686/alex-2.3.4-1-i686.pkg.tar.xz -> ../../../pool/community/alex-2.3.4-1-i686.pkg.tar.xz
+lrwxrwxrwx 27 2011/02/07 14:02:54 community-staging/os/i686/community-staging.db -> community-staging.db.tar.gz
+-rw-rw-r-- 2237 2011/02/07 14:02:54 community-staging/os/i686/community-staging.db.tar.gz
+-rw-rw-r-- 3209 2011/02/07 14:00:13 community-staging/os/i686/community-staging.db.tar.gz.old
+drwxrwxr-x 15 2009/07/22 15:07:56 community
+drwxrwxr-x 40 2009/08/04 15:57:42 community/os
+drwxrwsr-x 36864 2011/02/03 05:00:01 community/os/any
+-rw-rw-r-- 303336 2010/07/16 10:06:28 community/os/any/any2dvd-0.34-4-any.pkg.tar.xz
+-rw-rw-r-- 221664 2010/03/28 15:55:48 community/os/x86_64/gmime22-2.2.26-1-x86_64.pkg.tar.xz
diff --git a/test/test_pkginfo_from_rsync_output.py b/test/test_pkginfo_from_rsync_output.py
index b810e9a..81f14d9 100644
--- a/test/test_pkginfo_from_rsync_output.py
+++ b/test/test_pkginfo_from_rsync_output.py
@@ -12,55 +12,33 @@ from repm.filter import *
import unittest
class KnownValues(unittest.TestCase):
- directory_list=("drwxrwxr-x 15 2010/09/11 11:28:50 community-staging",
- "drwxrwxr-x 30 2010/09/11 11:28:50 community-staging/os",
- 'dr-xr-sr-x 4096 2010/09/11 11:37:10 .')
- # (rsync_out, name, version, arch, release, location)
- examples=(
- ("lrwxrwxrwx 53 2011/01/31 01:52:06 community-testing/os/i686/apvlv-0.1.0-2-i686.pkg.tar.xz -> ../../../pool/community/apvlv-0.1.0-2-i686.pkg.tar.xz", "apvlv","0.1.0","i686", "2", "community-testing/os/i686/apvlv-0.1.0-2-i686.pkg.tar.xz"),
- ("lrwxrwxrwx 56 2011/02/04 14:34:08 community-testing/os/i686/calibre-0.7.44-2-i686.pkg.tar.xz -> ../../../pool/community/calibre-0.7.44-2-i686.pkg.tar.xz","calibre","0.7.44","i686", "2", "community-testing/os/i686/calibre-0.7.44-2-i686.pkg.tar.xz"),
- ("-rw-rw-r-- 5846249 2010/11/13 10:54:25 pool/community/abuse-0.7.1-1-x86_64.pkg.tar.gz",
- "abuse","0.7.1","x86_64","1","pool/community/abuse-0.7.1-1-x86_64.pkg.tar.gz"),
- ("-rw-rw-r-- 982768 2011/02/05 14:38:17 pool/community/acetoneiso2-2.3-2-i686.pkg.tar.xz",
- "acetoneiso2","2.3","i686", "2", "pool/community/acetoneiso2-2.3-2-i686.pkg.tar.xz"),
- ("-rw-rw-r-- 982764 2011/02/05 14:38:40 pool/community/acetoneiso2-2.3-2-x86_64.pkg.tar.xz",
- "acetoneiso2","2.3","x86_64","2","pool/community/acetoneiso2-2.3-2-x86_64.pkg.tar.xz")
- )
-
- def generate_results(self, example_tuple, attr):
- rsync_out, name, version, arch, release, location = example_tuple
- return pkginfo_from_rsync_output(rsync_out)[0][attr], locals()[attr]
-
- def testDirectoryOutput(self):
- """pkginfo_from_rsync_output should ignore directories"""
- rsync_out="\n".join(self.directory_list)
- result=pkginfo_from_rsync_output(rsync_out)
- self.assertEqual(tuple(), result)
-
- def testNames(self):
- for i in self.examples:
- k,v = self.generate_results(example_tuple=i,attr="name")
- self.assertEqual(k, v)
-
- def testVersions(self):
- for i in self.examples:
- k,v = self.generate_results(example_tuple=i,attr="version")
- self.assertEqual(k, v)
-
- def testArchs(self):
- for i in self.examples:
- k,v = self.generate_results(example_tuple=i,attr="arch")
- self.assertEqual(k, v)
-
- def testReleases(self):
- for i in self.examples:
- k,v = self.generate_results(example_tuple=i,attr="release")
- self.assertEqual(k, v)
-
- def testLocations(self):
- for i in self.examples:
- k,v = self.generate_results(example_tuple=i,attr="location")
- self.assertEqual(k, v)
+ try:
+ output_file = open("rsync_output_sample")
+ rsync_out= output_file.read()
+ output_file.close()
+ except IOError: print("There is no rsync_output_sample file")
+
+ pkglist = pkginfo_from_rsync_output(rsync_out)
+
+ def testOutputArePackages(self):
+ if not self.pkglist:
+ self.fail("not pkglist:" + str(self.pkglist))
+ for pkg in self.pkglist:
+ self.assertIsInstance(pkg,Package)
+
+ def testFirstPkg(self):
+ first_package_info=Package()
+ first_package_info.package_info={ "name" : "alex",
+ "version" : "2.3.4",
+ "release" : "1",
+ "arch" : "i686",
+ "license" : False,
+ "location": "community-staging/os/i686/alex-2.3.4-1-i686.pkg.tar.xz"}
+ if self.pkglist:
+ first_package=self.pkglist[0]
+ else:
+ self.fail(self.pkglist)
+ self.assertEqual(first_package,first_package_info)
if __name__ == "__main__":
unittest.main()