FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Fedora Design Team

 
 
LinkBack Thread Tools
 
Old 03-21-2012, 12:06 AM
David Lehman
 
Default Add some unit tests for packaging.

---
tests/pyanaconda_test/Makefile.am | 1 +
tests/pyanaconda_test/packaging_test.py | 126 +++++++++++++++++++++++++++++++
2 files changed, 127 insertions(+)
create mode 100644 tests/pyanaconda_test/packaging_test.py

diff --git a/tests/pyanaconda_test/Makefile.am b/tests/pyanaconda_test/Makefile.am
index 3ec14e5..cd9b189 100644
--- a/tests/pyanaconda_test/Makefile.am
+++ b/tests/pyanaconda_test/Makefile.am
@@ -34,6 +34,7 @@ TESTS = backend_test.py
language_test.py
network_test.py
packages_test.py
+ packaging_test.py
partintfhelpers_test.py
product_test.py
rescue_test.py
diff --git a/tests/pyanaconda_test/packaging_test.py b/tests/pyanaconda_test/packaging_test.py
new file mode 100644
index 0000000..eb669b6
--- /dev/null
+++ b/tests/pyanaconda_test/packaging_test.py
@@ -0,0 +1,126 @@
+#!/usr/bin/python
+
+import mock
+
+class PackagingTest(mock.TestCase):
+
+ def setUp(self):
+ self.setupModules(["_isys", "logging"])
+
+ import pyanaconda
+ pyanaconda.anaconda_log = mock.Mock()
+
+ from pykickstart.version import makeVersion
+ from pyanaconda.flags import flags
+
+ # set some things specially since we're just testing
+ flags.testing = True
+
+ # set up ksdata
+ self.ksdata = makeVersion()
+
+ from pyanaconda.packaging import Payload
+ self.payload = Payload(self.ksdata)
+
+ def tearDown(self):
+ self.tearDownModules()
+ #os.system("rm -rf %s" % self.root)
+
+ def payload_abstract_test(self):
+ self.assertRaises(NotImplementedError, self.payload.setup, None)
+ self.assertRaises(NotImplementedError, self.payload.description, None)
+
+ def payload_repo_test(self):
+ # ksdata repo list initially empty
+ self.assertEqual(self.payload.data.repo.dataList() , [])
+
+ # create and add a new ksdata repo
+ repo_name = "test1"
+ repo = self.ksdata.RepoData(name=repo_name, baseurl="http://localhost/")
+ self.payload.addRepo(repo)
+
+ # verify the repo was added
+ self.assertEqual(self.payload.data.repo.dataList() , [repo])
+ self.assertEqual(self.payload.getRepo(repo_name), repo)
+
+ # remove the repo
+ self.payload.removeRepo(repo_name)
+
+ # verify the repo was removed
+ self.assertEqual(self.payload.getRepo(repo_name), None)
+
+ def payload_group_test(self):
+ import pykickstart.constants
+ from pykickstart.parser import Group
+
+ # verify that ksdata group lists are initially empty
+ self.assertEqual(self.payload.data.packages.groupL ist, [])
+ self.assertEqual(self.payload.data.packages.exclud edGroupList, [])
+
+ self.payload.deselectGroup("core")
+ self.assertEqual(self.payload.groupSelected("core" ), False)
+
+ # select a group and verify the selection is reflected afterward
+ self.payload.selectGroup("core", optional=True)
+ self.assertTrue(self.payload.groupSelected("core") )
+
+ # verify the group is not in the excluded group list
+ self.assertTrue(Group("core") not in self.payload.data.packages.excludedGroupList)
+
+ # verify the include (optional/all) is recorded
+ groups = self.payload.data.packages.groupList
+ group = groups[[g.name for g in groups].index("core")]
+ self.assertEqual(group.include, pykickstart.constants.GROUP_ALL)
+
+ # select more groups
+ self.payload.selectGroup("base")
+ self.payload.selectGroup("development", default=False)
+
+ # verify include types for newly selected groups
+ group = groups[[g.name for g in groups].index("development")]
+ self.assertEqual(group.include, pykickstart.constants.GROUP_REQUIRED)
+
+ group = groups[[g.name for g in groups].index("base")]
+ self.assertEqual(group.include, pykickstart.constants.GROUP_DEFAULT)
+
+ # deselect a group and verify the set of groups is correct afterward
+ self.payload.deselectGroup("base")
+ self.assertFalse(self.payload.groupSelected("base" ))
+ self.assertTrue(self.payload.groupSelected("core") )
+ self.assertTrue(self.payload.groupSelected("develo pment"))
+
+ def payload_package_test(self):
+ # verify that ksdata package lists are initially empty
+ self.assertEqual(self.payload.data.packages.packag eList, [])
+ self.assertEqual(self.payload.data.packages.exclud edList, [])
+
+ name = "vim-common"
+
+ # deselect a package
+ self.payload.deselectPackage(name)
+ self.assertEqual(self.payload.packageSelected(name ), False)
+
+ # select the same package and verify it
+ self.payload.selectPackage(name)
+ self.assertEqual(self.payload.packageSelected(name ), True)
+ self.assertTrue(name in self.payload.data.packages.packageList)
+ self.assertFalse(name in self.payload.data.packages.excludedList)
+
+ # select some other packages
+ self.payload.selectPackage("bash")
+ self.payload.selectPackage("gnote")
+
+ # deselect one of them and then verify the selection state of them all
+ self.payload.deselectPackage("bash")
+ self.assertFalse(self.payload.packageSelected("bas h"))
+ self.assertTrue(self.payload.packageSelected("gnot e"))
+ self.assertTrue(self.payload.packageSelected(name) )
+
+ def payload_get_release_version_test(self):
+ # Given no URL, _getReleaseVersion should be able to get a releasever
+ # from pyanaconda.constants.productVersion. This trickery is due to the
+ # fact that pyanaconda/packaging/__init__.py will have already imported
+ # productVersion from pyanaconda.constants.
+ import pyanaconda.packaging
+ pyanaconda.packaging.productVersion = "17-Beta"
+ self.assertEqual(self.payload._getReleaseVersion(N one), "17")
--
1.7.9.3

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list
 

Thread Tools




All times are GMT. The time now is 06:33 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org