add test to entice svn mv
authorAlec Warner <antarus@gentoo.org>
Sat, 27 Jan 2007 18:14:57 +0000 (18:14 -0000)
committerAlec Warner <antarus@gentoo.org>
Sat, 27 Jan 2007 18:14:57 +0000 (18:14 -0000)
svn path=/main/trunk/; revision=5793

tests/portage_news/test_NewsItem.py [new file with mode: 0644]

diff --git a/tests/portage_news/test_NewsItem.py b/tests/portage_news/test_NewsItem.py
new file mode 100644 (file)
index 0000000..22ef298
--- /dev/null
@@ -0,0 +1,83 @@
+# test_NewsItem.py -- Portage Unit Testing Functionality
+# Copyright 2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id: test_varExpand.py 5596 2007-01-12 08:08:53Z antarus $
+
+from unittest import TestCase, TestLoader
+from portage.news import NewsItem
+from portage.const import PROFILE_PATH
+
+class NewsItemTestCase(TestCase):
+       
+       self.fakeItem = """
+Title: YourSQL Upgrades from 4.0 to 4.1
+Author: Ciaran McCreesh <ciaranm@gentoo.org>
+Content-Type: text/plain
+Posted: 01-Nov-2005
+Revision: 1
+#Display-If-Installed:
+#Display-If-Profile:
+#Display-If-Arch:
+
+YourSQL databases created using YourSQL version 4.0 are incompatible
+with YourSQL version 4.1 or later. There is no reliable way to
+automate the database format conversion, so action from the system
+administrator is required before an upgrade can take place.
+
+Please see the Gentoo YourSQL Upgrade Guide for instructions:
+
+    http://www.gentoo.org/doc/en/yoursql-upgrading.xml
+
+Also see the official YourSQL documentation:
+
+    http://dev.yoursql.com/doc/refman/4.1/en/upgrading-from-4-0.html
+
+After upgrading, you should also recompile any packages which link
+against YourSQL:
+
+    revdep-rebuild --library=libyoursqlclient.so.12
+
+The revdep-rebuild tool is provided by app-portage/gentoolkit.
+"""
+
+       from portage import settings
+       import time
+
+       def testDisplayIfProfile():
+               from portage.const import PROFILE_PATH
+               tmpItem = self.fakeItem.replace("#Display-If-Profile:", "Display-If-Profile: %s" %
+                       os.readlink( PROFILE_PATH ) )
+
+               item = _processItem(tmpItem)
+               self.assertTrue( item.isRelevant( os.readlink( PROFILE_PATH ) ),
+                       msg="Expected %s to be relevant, but it was not!" % tmpItem )
+
+       def testDisplayIfInstalled():
+               tmpItem = self.fakeItem.replace("#Display-If-Installed:", "Display-If-Profile: %s" %
+                       "sys-apps/portage" )
+
+               item = _processItem(tmpItem)
+               self.assertTrue( item.isRelevant( portage.settings ),
+                       msg="Expected %s to be relevant, but it was not!" % tmpItem )
+
+
+       def testDisplayIfKeyword():
+               from portage import settings
+               tmpItem = self.fakeItem.replace("#Display-If-Keyword:", "Display-If-Keyword: %s" %
+                       settings["ACCEPT_KEYWORDS"].split()[0] )
+
+               item = _processItem(tmpItem)
+               self.assertTrue( item.isRelevant( os.readlink( PROFILE_PATH ) ),
+                       msg="Expected %s to be relevant, but it was not!" % tmpItem )
+               
+
+       def _processItem( self, item ):
+
+               path = os.path.join( settings["PORTAGE_TMPDIR"], str(time.time())
+               f = open( os.path.join( path )
+               f.write(item)
+               f.close
+               try:
+                       return NewsItem( path, 0 )
+               except TypeError:
+                       self.fail("Error while processing news item %s" % path )