author | Tom Mueller <Tom.Mueller@sun.com> |
Thu, 23 Jul 2009 14:51:15 -0500 | |
changeset 1265 | c700981b0af2 |
parent 1253 | 6398a8499a91 |
child 1507 | b956ea23d3a6 |
permissions | -rw-r--r-- |
1117
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
1 |
#!/usr/bin/python2.4 |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
2 |
# |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
3 |
# CDDL HEADER START |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
4 |
# |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
5 |
# The contents of this file are subject to the terms of the |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
6 |
# Common Development and Distribution License (the "License"). |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
7 |
# You may not use this file except in compliance with the License. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
8 |
# |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
9 |
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
10 |
# or http://www.opensolaris.org/os/licensing. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
11 |
# See the License for the specific language governing permissions |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
12 |
# and limitations under the License. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
13 |
# |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
14 |
# When distributing Covered Code, include this CDDL HEADER in each |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
15 |
# file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
16 |
# If applicable, add the following below this CDDL HEADER, with the |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
17 |
# fields enclosed by brackets "[]" replaced with your own identifying |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
18 |
# information: Portions Copyright [yyyy] [name of copyright owner] |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
19 |
# |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
20 |
# CDDL HEADER END |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
21 |
# |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
22 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
23 |
# |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
24 |
# Copyright 2009 Sun Microsystems, Inc. All rights reserved. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
25 |
# Use is subject to license terms. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
26 |
# |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
27 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
28 |
import errno |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
29 |
import unittest |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
30 |
import cStringIO |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
31 |
import os |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
32 |
import pkg.client.api_errors as api_errors |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
33 |
import pkg.client.publisher as publisher |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
34 |
import pkg.fmri as fmri |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
35 |
import pkg.p5i as p5i |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
36 |
import shutil |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
37 |
import sys |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
38 |
import tempfile |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
39 |
import urllib |
1265
c700981b0af2
8656 build download hash check fails in Windows due to text mode open
Tom Mueller <Tom.Mueller@sun.com>
parents:
1253
diff
changeset
|
40 |
import urlparse |
1117
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
41 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
42 |
# Set the path so that modules above can be found |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
43 |
path_to_parent = os.path.join(os.path.dirname(__file__), "..") |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
44 |
sys.path.insert(0, path_to_parent) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
45 |
import pkg5unittest |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
46 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
47 |
class TestP5I(pkg5unittest.Pkg5TestCase): |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
48 |
"""Class to test the functionality of the pkg.p5i module.""" |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
49 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
50 |
p5i_bobcat = """{ |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
51 |
"packages": [ |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
52 |
"pkg:/[email protected],5.11-0", |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
53 |
"baz" |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
54 |
], |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
55 |
"publishers": [ |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
56 |
{ |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
57 |
"alias": "cat", |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
58 |
"name": "bobcat", |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
59 |
"packages": [ |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
60 |
"pkg:/[email protected],5.11-0" |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
61 |
], |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
62 |
"repositories": [ |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
63 |
{ |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
64 |
"collection_type": "core", |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
65 |
"description": "xkcd.net/325", |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
66 |
"legal_uris": [ |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
67 |
"http://xkcd.com/license.html" |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
68 |
], |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
69 |
"mirrors": [], |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
70 |
"name": "source", |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
71 |
"origins": [ |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
72 |
"http://localhost:12001/" |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
73 |
], |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
74 |
"refresh_seconds": 43200, |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
75 |
"registration_uri": "", |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
76 |
"related_uris": [] |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
77 |
} |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
78 |
] |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
79 |
} |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
80 |
], |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
81 |
"version": 1 |
1253
6398a8499a91
9027 p5i module should add terminating newline
Shawn Walker <srw@sun.com>
parents:
1117
diff
changeset
|
82 |
} |
6398a8499a91
9027 p5i module should add terminating newline
Shawn Walker <srw@sun.com>
parents:
1117
diff
changeset
|
83 |
""" |
1117
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
84 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
85 |
misc_files = [ "libc.so.1" ] |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
86 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
87 |
def setUp(self): |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
88 |
self.pid = os.getpid() |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
89 |
self.pwd = os.getcwd() |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
90 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
91 |
self.__test_prefix = os.path.join(tempfile.gettempdir(), |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
92 |
"ips.test.%d" % self.pid) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
93 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
94 |
try: |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
95 |
os.makedirs(self.__test_prefix, 0755) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
96 |
except OSError, e: |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
97 |
if e.errno != errno.EEXIST: |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
98 |
raise e |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
99 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
100 |
for p in self.misc_files: |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
101 |
fpath = os.path.join(self.get_test_prefix(), p) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
102 |
f = open(fpath, "wb") |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
103 |
# write the name of the file into the file, so that |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
104 |
# all files have differing contents |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
105 |
f.write(fpath) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
106 |
f.close() |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
107 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
108 |
def tearDown(self): |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
109 |
shutil.rmtree(self.get_test_prefix()) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
110 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
111 |
def get_test_prefix(self): |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
112 |
return self.__test_prefix |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
113 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
114 |
def test_parse_write(self): |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
115 |
"""Verify that the p5i parsing and writing works as expected.""" |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
116 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
117 |
# First build a publisher object matching our expected data. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
118 |
repo = publisher.Repository(description="xkcd.net/325", |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
119 |
legal_uris=["http://xkcd.com/license.html"], |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
120 |
name="source", origins=["http://localhost:12001/"], |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
121 |
refresh_seconds=43200) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
122 |
pub = publisher.Publisher("bobcat", alias="cat", |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
123 |
repositories=[repo]) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
124 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
125 |
# Verify that p5i export and parse works as expected. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
126 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
127 |
# Ensure that PkgFmri and strings are supported properly. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
128 |
# Build a simple list of packages. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
129 |
fmri_foo = fmri.PkgFmri("pkg:/[email protected],5.11-0", None) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
130 |
pnames = { |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
131 |
"bobcat": [fmri_foo], |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
132 |
"": ["pkg:/[email protected],5.11-0", "baz"], |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
133 |
} |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
134 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
135 |
# Dump the p5i data. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
136 |
fobj = cStringIO.StringIO() |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
137 |
p5i.write(fobj, [pub], pkg_names=pnames) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
138 |
|
1253
6398a8499a91
9027 p5i module should add terminating newline
Shawn Walker <srw@sun.com>
parents:
1117
diff
changeset
|
139 |
# Verify that the p5i data ends with a terminating newline. |
6398a8499a91
9027 p5i module should add terminating newline
Shawn Walker <srw@sun.com>
parents:
1117
diff
changeset
|
140 |
fobj.seek(-1, 2) |
6398a8499a91
9027 p5i module should add terminating newline
Shawn Walker <srw@sun.com>
parents:
1117
diff
changeset
|
141 |
self.assertEqual(fobj.read(), "\n") |
6398a8499a91
9027 p5i module should add terminating newline
Shawn Walker <srw@sun.com>
parents:
1117
diff
changeset
|
142 |
|
1117
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
143 |
# Verify that output matches expected output. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
144 |
fobj.seek(0) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
145 |
output = fobj.read() |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
146 |
self.assertEqual(output, self.p5i_bobcat) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
147 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
148 |
def validate_results(results): |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
149 |
# First result should be 'bobcat' publisher and its |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
150 |
# pkg_names. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
151 |
pub, pkg_names = results[0] |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
152 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
153 |
self.assertEqual(pub.prefix, "bobcat") |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
154 |
self.assertEqual(pub.alias, "cat") |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
155 |
repo = pub.selected_repository |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
156 |
self.assertEqual(repo.name, "source") |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
157 |
self.assertEqual(repo.description, "xkcd.net/325") |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
158 |
self.assertEqual(repo.legal_uris[0], |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
159 |
"http://xkcd.com/license.html") |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
160 |
self.assertEqual(repo.refresh_seconds, 43200) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
161 |
self.assertEqual(pkg_names, [str(fmri_foo)]) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
162 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
163 |
# Last result should be no publisher and a list of |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
164 |
# pkg_names. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
165 |
pub, pkg_names = results[1] |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
166 |
self.assertEqual(pub, None) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
167 |
self.assertEqual(pkg_names, ["pkg:/[email protected],5.11-0", |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
168 |
"baz"]) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
169 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
170 |
# Verify that parse returns the expected object and information |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
171 |
# when provided a fileobj. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
172 |
fobj.seek(0) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
173 |
validate_results(p5i.parse(fileobj=fobj)) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
174 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
175 |
# Verify that parse returns the expected object and information |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
176 |
# when provided a file path. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
177 |
fobj.seek(0) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
178 |
(fd1, path1) = tempfile.mkstemp(dir=self.get_test_prefix()) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
179 |
os.write(fd1, fobj.read()) |
1265
c700981b0af2
8656 build download hash check fails in Windows due to text mode open
Tom Mueller <Tom.Mueller@sun.com>
parents:
1253
diff
changeset
|
180 |
os.close(fd1) |
1117
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
181 |
validate_results(p5i.parse(location=path1)) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
182 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
183 |
# Verify that parse returns the expected object and information |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
184 |
# when provided a file URI. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
185 |
location = os.path.abspath(path1) |
1265
c700981b0af2
8656 build download hash check fails in Windows due to text mode open
Tom Mueller <Tom.Mueller@sun.com>
parents:
1253
diff
changeset
|
186 |
location = urlparse.urlunparse(("file", "", |
c700981b0af2
8656 build download hash check fails in Windows due to text mode open
Tom Mueller <Tom.Mueller@sun.com>
parents:
1253
diff
changeset
|
187 |
urllib.pathname2url(location), "", "", "")) |
1117
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
188 |
validate_results(p5i.parse(location=location)) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
189 |
fobj.close() |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
190 |
fobj = None |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
191 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
192 |
# Verify that appropriate exceptions are raised for p5i |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
193 |
# information that can't be retrieved (doesn't exist). |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
194 |
nefpath = os.path.join(self.get_test_prefix(), "non-existent") |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
195 |
self.assertRaises(api_errors.RetrievalError, |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
196 |
p5i.parse, location="file://%s" % nefpath) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
197 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
198 |
self.assertRaises(api_errors.RetrievalError, |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
199 |
p5i.parse, location=nefpath) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
200 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
201 |
# Verify that appropriate exceptions are raised for invalid |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
202 |
# p5i information. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
203 |
lcpath = os.path.join(self.get_test_prefix(), "libc.so.1") |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
204 |
location = os.path.abspath(lcpath) |
1265
c700981b0af2
8656 build download hash check fails in Windows due to text mode open
Tom Mueller <Tom.Mueller@sun.com>
parents:
1253
diff
changeset
|
205 |
location = urlparse.urlunparse(("file", "", |
c700981b0af2
8656 build download hash check fails in Windows due to text mode open
Tom Mueller <Tom.Mueller@sun.com>
parents:
1253
diff
changeset
|
206 |
urllib.pathname2url(location), "", "", "")) |
1117
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
207 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
208 |
# First, test as a file:// URI. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
209 |
self.assertRaises(api_errors.InvalidP5IFile, p5i.parse, |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
210 |
location=location) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
211 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
212 |
# Last, test as a pathname. |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
213 |
self.assertRaises(api_errors.InvalidP5IFile, p5i.parse, |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
214 |
location=location) |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
215 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
216 |
|
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
217 |
if __name__ == "__main__": |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
218 |
unittest.main() |
667aecade0ab
7862 install links using p5i for search results desired
Shawn Walker <srw@sun.com>
parents:
diff
changeset
|
219 |