aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPriit Laes <plaes@plaes.org>2010-07-27 05:47:00 +0300
committerPriit Laes <plaes@plaes.org>2010-07-27 05:47:00 +0300
commit516f8332ee1b077fc82a28baa4689a801bf5c855 (patch)
tree1de235b839aa44dc7940fe83e51c1a7ee282c7d2
parentBasic user creation test (diff)
downloadgsoc2010-grumpy-516f8332ee1b077fc82a28baa4689a801bf5c855.tar.gz
gsoc2010-grumpy-516f8332ee1b077fc82a28baa4689a801bf5c855.tar.bz2
gsoc2010-grumpy-516f8332ee1b077fc82a28baa4689a801bf5c855.zip
Added simple unittest for Ebuilds and Packages
-rw-r--r--grumpy/testsuite/__init__.py3
-rw-r--r--grumpy/testsuite/pkgmodel.py58
2 files changed, 60 insertions, 1 deletions
diff --git a/grumpy/testsuite/__init__.py b/grumpy/testsuite/__init__.py
index 6dc55e3..e9762db 100644
--- a/grumpy/testsuite/__init__.py
+++ b/grumpy/testsuite/__init__.py
@@ -27,7 +27,8 @@ class GrumpyTestCase(unittest.TestCase):
self.db.drop_all()
def suite():
- from . import usermodel
+ from . import pkgmodel, usermodel
suite = unittest.TestSuite()
+ suite.addTest(pkgmodel.suite())
suite.addTest(usermodel.suite())
return suite
diff --git a/grumpy/testsuite/pkgmodel.py b/grumpy/testsuite/pkgmodel.py
new file mode 100644
index 0000000..49ae354
--- /dev/null
+++ b/grumpy/testsuite/pkgmodel.py
@@ -0,0 +1,58 @@
+# -*- coding: utf-8 -*-
+"""
+ grumpy.testsuite.pkgmodel
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Unittests for package and ebuild handling.
+
+ :copyright: (c) by 2010 Priit Laes.
+ :license: BSD, see LICENSE for details.
+"""
+from . import GrumpyTestCase
+
+from grumpy.models import Category, Ebuild, Package
+
+import time, unittest
+
+categories = ['app-misc', 'app-test']
+
+class PkgModelTestCase(GrumpyTestCase):
+
+ def make_categories(self):
+ for cat in categories:
+ self.db.session.add(Category(cat))
+ self.db.session.commit()
+
+ def make_package_and_ebuilds(self):
+ # Create package...
+ p = Package(categories[0], 'testpkg', 'Test Package', \
+ 'Long Description', 'http://example.com/test', \
+ time.time())
+ # ...and two ebuilds
+ p.ebuilds.append(Ebuild(p, '1.0-r3', 2, 0, 'x86,~amd64', 'doc', ''))
+ p.ebuilds.append(Ebuild(p, '1.0-r4', 2, 0, '~x86,~amd64', 'doc', ''))
+ self.db.session.add(p)
+ self.db.session.commit()
+
+ def test_category_and_package_model(self):
+ with self.app.test_request_context():
+ self.make_categories()
+ self.make_package_and_ebuilds()
+ assert Category.query.count() == 2
+ assert Ebuild.query.count() == 2
+ assert Package.query.count() == 1
+ p = Package.query.first()
+ assert len(p.ebuilds) == 2
+
+ # Test garbage collection
+ self.db.session.delete(p)
+ self.db.session.commit()
+ assert Category.query.count() == 2
+ # Cascade delete should also get rid of ebuilds
+ assert Ebuild.query.count() == 0
+ assert Package.query.count() == 0
+
+def suite():
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(PkgModelTestCase))
+ return suite