1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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 )
|