src/tests/cli/t_pkg_info.py
author Bart Smaalders <Bart.Smaalders@Oracle.COM>
Mon, 15 Jul 2013 11:07:32 -0700
changeset 2915 a7756acea9ef
parent 2893 f5a02a06d6c3
child 2940 0e5359bd88dd
permissions -rw-r--r--
17075980 pkg strips newlines from release notes 17076039 pkg could be more helpful about release notes when using -R 17089043 Several tests fail when run in locales other than C
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1516
8c950a3b4171 10485 move pkg(5) to Python 2.6
Rich Burridge <rich.burridge@sun.com>
parents: 1505
diff changeset
     1
#!/usr/bin/python
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
     2
#
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
     3
# CDDL HEADER START
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
     4
#
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
     8
#
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    11
# See the License for the specific language governing permissions
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    12
# and limitations under the License.
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    13
#
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    19
#
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    20
# CDDL HEADER END
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    21
#
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    22
2893
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
    23
# Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    24
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    25
import testutils
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    26
if __name__ == "__main__":
2073
9fcacc9e5eaa 16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents: 1970
diff changeset
    27
        testutils.setup_environment("../../../proto")
1715
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1672
diff changeset
    28
import pkg5unittest
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    29
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    30
import os
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    31
import shutil
1672
3a71439a03f3 13021 file manager exceptions should be api exceptions
Shawn Walker <srw@sun.com>
parents: 1516
diff changeset
    32
import unittest
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    33
2753
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
    34
import pkg.actions as actions
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
    35
import pkg.fmri as fmri
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
    36
1715
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1672
diff changeset
    37
class TestPkgInfoBasics(pkg5unittest.SingleDepotTestCase):
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    38
        # Only start/stop the depot once (instead of for every test)
1715
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1672
diff changeset
    39
        persistent_setup = True
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    40
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    41
        bronze10 = """
2547
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
    42
            open [email protected],5.11-0:20110908T004546Z
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    43
            add dir mode=0755 owner=root group=bin path=/usr
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    44
            add dir mode=0755 owner=root group=bin path=/usr/bin
1715
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1672
diff changeset
    45
            add file tmp/sh mode=0555 owner=root group=bin path=/usr/bin/sh
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    46
            add link path=/usr/bin/jsh target=./sh
1715
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1672
diff changeset
    47
            add file tmp/bronze1 mode=0444 owner=root group=bin path=/etc/bronze1
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1672
diff changeset
    48
            add file tmp/bronze2 mode=0444 owner=root group=bin path=/etc/bronze2
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1672
diff changeset
    49
            add file tmp/bronzeA1 mode=0444 owner=root group=bin path=/A/B/C/D/E/F/bronzeA1
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1672
diff changeset
    50
            add license tmp/copyright1 license=copyright
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    51
            close
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    52
        """
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    53
2712
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
    54
        bronze05 = """
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
    55
            open [email protected],5.11-0:20110908T004546Z
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
    56
            add license tmp/copyright0 license=copyright
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
    57
            close
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
    58
        """
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
    59
1755
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
    60
        badfile10 = """
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
    61
            open [email protected],5.11-0
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
    62
            add file tmp/baz mode=644 owner=root group=bin path=/tmp/baz-file
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
    63
            close
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
    64
        """
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
    65
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
    66
        baddir10 = """
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
    67
            open [email protected],5.11-0
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
    68
            add dir mode=755 owner=root group=bin path=/tmp/baz-dir
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
    69
            close
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
    70
        """
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
    71
2493
5db1603f0c3f 18609 support for a human-readable version string
Danek Duvall <danek.duvall@oracle.com>
parents: 2224
diff changeset
    72
        human = """
2547
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
    73
            open [email protected],5.11-0:20110908T004546Z
2493
5db1603f0c3f 18609 support for a human-readable version string
Danek Duvall <danek.duvall@oracle.com>
parents: 2224
diff changeset
    74
            add set name=pkg.human-version value=0.9.8r
5db1603f0c3f 18609 support for a human-readable version string
Danek Duvall <danek.duvall@oracle.com>
parents: 2224
diff changeset
    75
            close
5db1603f0c3f 18609 support for a human-readable version string
Danek Duvall <danek.duvall@oracle.com>
parents: 2224
diff changeset
    76
        """
5db1603f0c3f 18609 support for a human-readable version string
Danek Duvall <danek.duvall@oracle.com>
parents: 2224
diff changeset
    77
1755
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
    78
        misc_files = [ "tmp/bronzeA1",  "tmp/bronzeA2", "tmp/bronze1",
2712
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
    79
            "tmp/bronze2", "tmp/copyright1", "tmp/copyright0", "tmp/sh",
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
    80
            "tmp/baz"]
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    81
2893
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
    82
        def __check_qoutput(self, errout=False):
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
    83
                self.assertEqualDiff(self.output, "")
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
    84
                if errout:
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
    85
                        self.assert_(self.errout != "",
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
    86
                            "-q must print fatal errors!")
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
    87
                else:
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
    88
                        self.assert_(self.errout == "",
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
    89
                            "-q should only print fatal errors!")
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
    90
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    91
        def setUp(self):
1715
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1672
diff changeset
    92
                pkg5unittest.SingleDepotTestCase.setUp(self)
8f305f0a6864 8265 EINVAL on rmdir running "make test"
Dan Price <dp@eng.sun.com>
parents: 1672
diff changeset
    93
                self.make_misc_files(self.misc_files)
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
    94
                self.plist = self.pkgsend_bulk(self.rurl, (self.badfile10,
2712
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
    95
                    self.baddir10, self.bronze10, self.bronze05, self.human))
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    96
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    97
        def test_pkg_info_bad_fmri(self):
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    98
                """Test bad frmi's with pkg info."""
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
    99
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   100
                pkg1 = """
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   101
                    open [email protected],5.11-0
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   102
                    add dir mode=0755 owner=root group=bin path=/bin
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   103
                    close
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   104
                """
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
   105
                self.pkgsend_bulk(self.rurl, pkg1)
2073
9fcacc9e5eaa 16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents: 1970
diff changeset
   106
                self.image_create(self.rurl)
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   107
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   108
                self.pkg("info [email protected]", exit=1)
2893
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   109
                # Should only print fatal errors when using -q.
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   110
                self.pkg("info -q [email protected]", exit=1)
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   111
                self.__check_qoutput(errout=True)
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
   112
                self.pkg("info pkg:/[email protected],5.11-0.95:20080807T160129",
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
   113
                    exit=1)
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   114
                self.pkg("info pkg:/[email protected],5.11-0.95:20080807T1", exit=1)
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   115
                self.pkg("info pkg:/[email protected],5.11-0.95:", exit=1)
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   116
                self.pkg("info pkg:/[email protected],5.11-0.", exit=1)
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   117
                self.pkg("info pkg:/[email protected],5.11-", exit=1)
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   118
                self.pkg("info pkg:/[email protected],-", exit=1)
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   119
                self.pkg("info pkg:/man@-", exit=1)
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   120
                self.pkg("info pkg:/man@", exit=1)
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   121
707
d37b19989de2 4878 pkg info traceback when given invalid input
Brock Pytlik <bpytlik@sun.com>
parents: 688
diff changeset
   122
                # Bug 4878
2224
dba01788128c 17824 api install and update should allow specifying "latest" version of packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2073
diff changeset
   123
                self.pkg("info -r _usr/bin/stunnel", exit=1)
dba01788128c 17824 api install and update should allow specifying "latest" version of packages
Shawn Walker <shawn.walker@oracle.com>
parents: 2073
diff changeset
   124
                self.pkg("info _usr/bin/stunnel", exit=1)
707
d37b19989de2 4878 pkg info traceback when given invalid input
Brock Pytlik <bpytlik@sun.com>
parents: 688
diff changeset
   125
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   126
		# bad version
2073
9fcacc9e5eaa 16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents: 1970
diff changeset
   127
                self.pkg("install jade")
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   128
                self.pkg("info pkg:/[email protected]", exit=1)
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   129
                self.pkg("info pkg:/[email protected] jade", exit=1)
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   130
                self.pkg("info -r pkg:/[email protected]", exit=1)
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   131
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   132
		# bad time
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   133
                self.pkg("info pkg:/[email protected],5.11-0.91:20080613T999999Z",
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   134
                    exit=1)
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   135
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   136
        def test_info_empty_image(self):
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   137
                """local pkg info should fail in an empty image; remote
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   138
                should succeed on a match """
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   139
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
   140
                self.image_create(self.rurl)
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   141
                self.pkg("info", exit=1)
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   142
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   143
        def test_info_local_remote(self):
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   144
                """pkg: check that info behaves for local and remote cases."""
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   145
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   146
                pkg1 = """
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   147
                    open [email protected],5.11-0
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   148
                    add dir mode=0755 owner=root group=bin path=/bin
834
f8b3396500b3 4883 import failure for non-sunos platforms due to missing pspawn
Tom Mueller <Tom.Mueller@sun.com>
parents: 789
diff changeset
   149
                    add set name=info.classification value="org.opensolaris.category.2008:Applications/Sound and Video"
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   150
                    close
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   151
                """
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   152
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   153
                pkg2 = """
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   154
                    open [email protected],5.11-0
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   155
                    add dir mode=0755 owner=root group=bin path=/bin
688
32a3ca40676e 4260 pkg info should print the classification
Brock Pytlik <bpytlik@sun.com>
parents: 620
diff changeset
   156
                    add set name=info.classification value=org.opensolaris.category.2008:System/Security/Foo/bar/Baz
1389
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   157
                    add set pkg.description="Short desc"
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   158
                    close
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   159
                """
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   160
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   161
                pkg3 = """
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   162
                    open [email protected],5.11-0
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   163
                    add dir mode=0755 owner=root group=bin path=/bin
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   164
                    add set pkg.description="This package constrains package versions to those for build 123.  WARNING: Proper system update and correct package selection depend on the presence of this incorporation.  Removing this package will result in an unsupported system."
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   165
                    close
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   166
                """
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   167
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
   168
                # This unit test needs an actual depot due to unprivileged user
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
   169
                # testing.
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
   170
                self.dc.start()
2073
9fcacc9e5eaa 16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents: 1970
diff changeset
   171
                plist = self.pkgsend_bulk(self.durl, (pkg1, pkg2, pkg3))
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
   172
                self.image_create(self.durl)
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   173
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   174
                # Install one package and verify
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   175
                self.pkg("install jade")
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   176
                self.pkg("verify -v")
1801
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   177
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   178
                # Check local info
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   179
                self.pkg("info jade | grep 'State: Installed'")
688
32a3ca40676e 4260 pkg info should print the classification
Brock Pytlik <bpytlik@sun.com>
parents: 620
diff changeset
   180
                self.pkg("info jade | grep '      Category: Applications/Sound and Video'")
32a3ca40676e 4260 pkg info should print the classification
Brock Pytlik <bpytlik@sun.com>
parents: 620
diff changeset
   181
                self.pkg("info jade | grep '      Category: Applications/Sound and Video (org.opensolaris.category.2008)'", exit=1)
1389
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   182
                self.pkg("info jade | grep 'Description:'", exit=1)
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   183
                self.pkg("info turquoise 2>&1 | grep 'no packages matching'")
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   184
                self.pkg("info emerald", exit=1)
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   185
                self.pkg("info emerald 2>&1 | grep 'no packages matching'")
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   186
                self.pkg("info 'j*'")
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   187
                self.pkg("info '*a*'")
1672
3a71439a03f3 13021 file manager exceptions should be api exceptions
Shawn Walker <srw@sun.com>
parents: 1516
diff changeset
   188
                self.pkg("info jade", su_wrap=True)
2893
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   189
                # Should only print fatal errors when using -q.
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   190
                self.pkg("info -q jade")
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   191
                self.__check_qoutput(errout=False)
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   192
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   193
                # Check remote info
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   194
                self.pkg("info -r jade | grep 'State: Installed'")
688
32a3ca40676e 4260 pkg info should print the classification
Brock Pytlik <bpytlik@sun.com>
parents: 620
diff changeset
   195
                self.pkg("info -r jade | grep '      Category: Applications/Sound and Video'")
32a3ca40676e 4260 pkg info should print the classification
Brock Pytlik <bpytlik@sun.com>
parents: 620
diff changeset
   196
                self.pkg("info -r jade | grep '      Category: Applications/Sound and Video (org.opensolaris.category.2008)'", exit=1)
32a3ca40676e 4260 pkg info should print the classification
Brock Pytlik <bpytlik@sun.com>
parents: 620
diff changeset
   197
                self.pkg("info -r turquoise | grep 'State: Not installed'")
32a3ca40676e 4260 pkg info should print the classification
Brock Pytlik <bpytlik@sun.com>
parents: 620
diff changeset
   198
                self.pkg("info -r turquoise | grep '      Category: System/Security/Foo/bar/Baz'")
32a3ca40676e 4260 pkg info should print the classification
Brock Pytlik <bpytlik@sun.com>
parents: 620
diff changeset
   199
                self.pkg("info -r turquoise | grep '      Category: System/Security/Foo/bar/Baz (org.opensolaris.category.2008)'", exit=1)
1672
3a71439a03f3 13021 file manager exceptions should be api exceptions
Shawn Walker <srw@sun.com>
parents: 1516
diff changeset
   200
                self.pkg("info -r turquoise | grep '   Description: Short desc'")
2893
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   201
                # Should only print fatal errors when using -q.
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   202
                self.pkg("info -qr turquoise")
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   203
                self.__check_qoutput(errout=False)
1389
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   204
                self.pkg("info -r turquoise")
1672
3a71439a03f3 13021 file manager exceptions should be api exceptions
Shawn Walker <srw@sun.com>
parents: 1516
diff changeset
   205
2073
9fcacc9e5eaa 16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents: 1970
diff changeset
   206
                # Now remove the manifest for turquoise and retry the info -r
9fcacc9e5eaa 16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents: 1970
diff changeset
   207
                # for an unprivileged user.
9fcacc9e5eaa 16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents: 1970
diff changeset
   208
                mdir = os.path.dirname(self.get_img_manifest_path(
9fcacc9e5eaa 16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents: 1970
diff changeset
   209
                    fmri.PkgFmri(plist[1])))
9fcacc9e5eaa 16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents: 1970
diff changeset
   210
                shutil.rmtree(mdir)
9fcacc9e5eaa 16998 transport should support publisher-specific write and read caches
Shawn Walker <shawn.walker@oracle.com>
parents: 1970
diff changeset
   211
                self.assertFalse(os.path.exists(mdir))
1672
3a71439a03f3 13021 file manager exceptions should be api exceptions
Shawn Walker <srw@sun.com>
parents: 1516
diff changeset
   212
                self.pkg("info -r turquoise", su_wrap=True)
3a71439a03f3 13021 file manager exceptions should be api exceptions
Shawn Walker <srw@sun.com>
parents: 1516
diff changeset
   213
3a71439a03f3 13021 file manager exceptions should be api exceptions
Shawn Walker <srw@sun.com>
parents: 1516
diff changeset
   214
                # Verify output.
1389
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   215
                lines = self.output.split("\n")
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   216
                self.assertEqual(lines[2], "   Description: Short desc")
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   217
                self.assertEqual(lines[3],
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   218
                    "      Category: System/Security/Foo/bar/Baz")
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   219
                self.pkg("info -r copper")
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   220
                lines = self.output.split("\n")
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   221
                self.assertEqual(lines[2],
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   222
                   "   Description: This package constrains package versions to those for build 123.")
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   223
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   224
                self.assertEqual(lines[3], "                WARNING: Proper system update and correct package selection")
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   225
                self.assertEqual(lines[4], "                depend on the presence of this incorporation.  Removing this")
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   226
                self.assertEqual(lines[5], "                package will result in an unsupported system.")
1827f487a235 8868 Changes needed to handle package descriptions in the pkg Python API.
Brock Pytlik <bpytlik@sun.com>
parents: 834
diff changeset
   227
                self.assertEqual(lines[6], "         State: Not installed")
2893
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   228
                # Should only print fatal errors when using -q.
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   229
                self.pkg("info -qr turquoise")
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   230
                self.__check_qoutput(errout=False)
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   231
                # Now check for an unknown remote package.
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   232
                self.pkg("info -r emerald", exit=1)
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   233
                self.pkg("info -r emerald 2>&1 | grep 'no packages matching'")
2893
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   234
                # Should only print fatal errors when using -q.
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   235
                self.pkg("info -qr emerald", exit=1)
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   236
                self.__check_qoutput(errout=False)
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   237
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
   238
                self.dc.stop()
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   239
789
f82de17d23fd 2274 "pkg info --license" succeeds even if there are no license actions
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 707
diff changeset
   240
        def test_bug_2274(self):
f82de17d23fd 2274 "pkg info --license" succeeds even if there are no license actions
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 707
diff changeset
   241
                """Verify that a failure to retrieve license information, for
f82de17d23fd 2274 "pkg info --license" succeeds even if there are no license actions
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 707
diff changeset
   242
                one or more packages specified, will result in an exit code of
1970
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1895
diff changeset
   243
                1 (complete failure) or 3 (partial failure) and a printed
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1895
diff changeset
   244
                message.
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1895
diff changeset
   245
                """
789
f82de17d23fd 2274 "pkg info --license" succeeds even if there are no license actions
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 707
diff changeset
   246
f82de17d23fd 2274 "pkg info --license" succeeds even if there are no license actions
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 707
diff changeset
   247
                pkg1 = """
f82de17d23fd 2274 "pkg info --license" succeeds even if there are no license actions
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 707
diff changeset
   248
                    open [email protected],5.11-0
f82de17d23fd 2274 "pkg info --license" succeeds even if there are no license actions
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 707
diff changeset
   249
                    close
f82de17d23fd 2274 "pkg info --license" succeeds even if there are no license actions
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 707
diff changeset
   250
                """
f82de17d23fd 2274 "pkg info --license" succeeds even if there are no license actions
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 707
diff changeset
   251
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
   252
                self.pkgsend_bulk(self.rurl, pkg1)
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
   253
                self.image_create(self.rurl)
789
f82de17d23fd 2274 "pkg info --license" succeeds even if there are no license actions
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 707
diff changeset
   254
                self.pkg("info --license -r bronze")
f82de17d23fd 2274 "pkg info --license" succeeds even if there are no license actions
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 707
diff changeset
   255
                self.pkg("info --license -r silver", exit=1)
2893
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   256
                # Should only print fatal errors when using -q.
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   257
                self.pkg("info --license -qr silver", exit=1)
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   258
                self.__check_qoutput(errout=False)
1970
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1895
diff changeset
   259
                self.pkg("info --license -r bronze silver", exit=3)
789
f82de17d23fd 2274 "pkg info --license" succeeds even if there are no license actions
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 707
diff changeset
   260
                self.pkg("info --license -r silver 2>&1 | grep 'no license information'")
f82de17d23fd 2274 "pkg info --license" succeeds even if there are no license actions
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 707
diff changeset
   261
2893
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   262
                self.pkg("install bronze silver")
789
f82de17d23fd 2274 "pkg info --license" succeeds even if there are no license actions
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 707
diff changeset
   263
f82de17d23fd 2274 "pkg info --license" succeeds even if there are no license actions
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 707
diff changeset
   264
                self.pkg("info --license bronze")
2893
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   265
                # Should only print fatal errors when using -q.
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   266
                self.pkg("info --license -q bronze")
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   267
                self.__check_qoutput(errout=False)
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   268
789
f82de17d23fd 2274 "pkg info --license" succeeds even if there are no license actions
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 707
diff changeset
   269
                self.pkg("info --license silver", exit=1)
2893
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   270
                # Should only print fatal errors when using -q.
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   271
                self.pkg("info --license -q silver", exit=1)
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   272
                self.__check_qoutput(errout=False)
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   273
1970
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1895
diff changeset
   274
                self.pkg("info --license bronze silver", exit=3)
2893
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   275
                # Should only print fatal errors when using -q.
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   276
                self.pkg("info --license -q bronze silver", exit=3)
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   277
                self.__check_qoutput(errout=False)
f5a02a06d6c3 16663535 want -q option for pkg list/info scripting
Shawn Walker <shawn.walker@oracle.com>
parents: 2753
diff changeset
   278
789
f82de17d23fd 2274 "pkg info --license" succeeds even if there are no license actions
Shawn Walker <Shawn.Walker@Sun.COM>
parents: 707
diff changeset
   279
                self.pkg("info --license silver 2>&1 | grep 'no license information'")
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   280
1755
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   281
        def test_info_bad_packages(self):
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   282
                """Verify that pkg info handles packages with invalid
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   283
                metadata."""
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   284
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
   285
                self.image_create(self.rurl)
1755
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   286
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   287
                # Verify that no packages are installed.
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   288
                self.pkg("list", exit=1)
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   289
                plist = self.plist[:2]
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   290
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   291
                # This should succeed and cause the manifests to be cached.
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   292
                self.pkg("info -r %s" % " ".join(p for p in plist))
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   293
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   294
                # Now attempt to corrupt the client's copy of the manifest by
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   295
                # adding malformed actions.
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   296
                for p in plist:
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   297
                        self.debug("Testing package %s ..." % p)
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   298
                        pfmri = fmri.PkgFmri(p)
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   299
                        mdata = self.get_img_manifest(pfmri)
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   300
                        if mdata.find("dir") != -1:
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   301
                                src_mode = "mode=755"
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   302
                        else:
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   303
                                src_mode = "mode=644"
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   304
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   305
                        for bad_act in (
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   306
                            'set name=description value="" \" my desc \" ""',
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   307
                            "set name=com.sun.service.escalations value="):
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   308
                                self.debug("Testing with bad action "
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   309
                                    "'%s'." % bad_act)
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   310
                                bad_mdata = mdata + "%s\n" % bad_act
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   311
                                self.write_img_manifest(pfmri, bad_mdata)
1970
60471574c487 16238 client api should ignore invalid and not yet supported packages
Shawn Walker <shawn.walker@oracle.com>
parents: 1895
diff changeset
   312
                                self.pkg("info -r %s" % pfmri.pkg_name, exit=0)
1755
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   313
2493
5db1603f0c3f 18609 support for a human-readable version string
Danek Duvall <danek.duvall@oracle.com>
parents: 2224
diff changeset
   314
        def test_human_version(self):
5db1603f0c3f 18609 support for a human-readable version string
Danek Duvall <danek.duvall@oracle.com>
parents: 2224
diff changeset
   315
                """Verify that info returns the expected output for packages
5db1603f0c3f 18609 support for a human-readable version string
Danek Duvall <danek.duvall@oracle.com>
parents: 2224
diff changeset
   316
                with a human-readable version defined."""
5db1603f0c3f 18609 support for a human-readable version string
Danek Duvall <danek.duvall@oracle.com>
parents: 2224
diff changeset
   317
5db1603f0c3f 18609 support for a human-readable version string
Danek Duvall <danek.duvall@oracle.com>
parents: 2224
diff changeset
   318
                self.image_create(self.rurl)
5db1603f0c3f 18609 support for a human-readable version string
Danek Duvall <danek.duvall@oracle.com>
parents: 2224
diff changeset
   319
                self.pkg("info -r human | grep 'Version: 0.9.8.18 (0.9.8r)'")
5db1603f0c3f 18609 support for a human-readable version string
Danek Duvall <danek.duvall@oracle.com>
parents: 2224
diff changeset
   320
2547
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   321
        def test_ranked(self):
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   322
                """Verify that pkg info -r returns expected results when
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   323
                multiple publishers provide the same package based on
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   324
                publisher search order."""
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   325
2915
a7756acea9ef 17075980 pkg strips newlines from release notes
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2893
diff changeset
   326
		# because we compare date strings we must run this in
a7756acea9ef 17075980 pkg strips newlines from release notes
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2893
diff changeset
   327
		# a consistent locale, which we made 'C'
a7756acea9ef 17075980 pkg strips newlines from release notes
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2893
diff changeset
   328
a7756acea9ef 17075980 pkg strips newlines from release notes
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2893
diff changeset
   329
		os.environ['LC_ALL'] = 'C'
a7756acea9ef 17075980 pkg strips newlines from release notes
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2893
diff changeset
   330
2547
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   331
                # Create an isolated repository for this test
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   332
                repodir = os.path.join(self.test_root, "test-ranked")
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   333
                self.create_repo(repodir)
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   334
                self.pkgrepo("add-publisher -s %s test" % repodir)
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   335
                self.pkgsend_bulk(repodir, (self.bronze10, self.human))
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   336
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   337
                self.pkgrepo("add-publisher -s %s test2" % repodir)
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   338
                self.pkgrepo("set -s %s publisher/prefix=test2" % repodir)
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   339
                self.pkgsend_bulk(repodir, self.bronze10)
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   340
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   341
                self.pkgrepo("add-publisher -s %s test3" % repodir)
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   342
                self.pkgrepo("set -s %s publisher/prefix=test3" % repodir)
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   343
                self.pkgsend_bulk(repodir, self.bronze10)
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   344
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   345
                # Create a test image.
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   346
                self.image_create()
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   347
                self.pkg("set-publisher -p %s" % repodir)
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   348
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   349
                # Test should be higher ranked than test2 since the default
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   350
                # for auto-configuration is to use lexical order when
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   351
                # multiple publishers are found.  As such, info -r should
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   352
                # return results for 'test' by default.
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   353
                self.pkg("info -r bronze human")
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   354
                expected = """\
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   355
 Name: bronze
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   356
 Summary: 
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   357
 State: Not installed
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   358
 Publisher: test
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   359
 Version: 1.0
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   360
 Build Release: 5.11
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   361
 Branch: 0
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   362
Packaging Date: Thu Sep 08 00:45:46 2011
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   363
 Size: 54.00 B
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   364
 FMRI: pkg://test/[email protected],5.11-0:20110908T004546Z
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   365
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   366
 Name: human
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   367
 Summary: 
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   368
 State: Not installed
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   369
 Publisher: test
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   370
 Version: 0.9.8.18 (0.9.8r)
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   371
 Build Release: 5.11
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   372
 Branch: 0
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   373
Packaging Date: Thu Sep 08 00:45:46 2011
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   374
 Size: 0.00 B
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   375
 FMRI: pkg://test/[email protected],5.11-0:20110908T004546Z
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   376
"""
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   377
                self.assertEqualDiff(expected, self.reduceSpaces(self.output))
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   378
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   379
                # Verify that if the publisher is specified, that is preferred
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   380
                # over rank.
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   381
                self.pkg("info -r //test2/bronze")
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   382
                expected = """\
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   383
 Name: bronze
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   384
 Summary: 
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   385
 State: Not installed
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   386
 Publisher: test2
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   387
 Version: 1.0
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   388
 Build Release: 5.11
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   389
 Branch: 0
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   390
Packaging Date: Thu Sep 08 00:45:46 2011
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   391
 Size: 54.00 B
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   392
 FMRI: pkg://test2/[email protected],5.11-0:20110908T004546Z
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   393
"""
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   394
                self.assertEqualDiff(expected, self.reduceSpaces(self.output))
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   395
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   396
                # Verify that if stem is specified with and without publisher,
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   397
                # both matches are listed if the higher-ranked publisher differs
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   398
                # from the publisher specified.
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   399
                self.pkg("info -r //test/bronze bronze")
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   400
                expected = """\
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   401
 Name: bronze
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   402
 Summary: 
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   403
 State: Not installed
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   404
 Publisher: test
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   405
 Version: 1.0
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   406
 Build Release: 5.11
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   407
 Branch: 0
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   408
Packaging Date: Thu Sep 08 00:45:46 2011
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   409
 Size: 54.00 B
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   410
 FMRI: pkg://test/[email protected],5.11-0:20110908T004546Z
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   411
"""
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   412
                self.assertEqualDiff(expected, self.reduceSpaces(self.output))
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   413
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   414
                self.pkg("info -r //test2/bronze bronze")
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   415
                expected = """\
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   416
 Name: bronze
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   417
 Summary: 
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   418
 State: Not installed
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   419
 Publisher: test
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   420
 Version: 1.0
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   421
 Build Release: 5.11
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   422
 Branch: 0
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   423
Packaging Date: Thu Sep 08 00:45:46 2011
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   424
 Size: 54.00 B
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   425
 FMRI: pkg://test/[email protected],5.11-0:20110908T004546Z
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   426
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   427
 Name: bronze
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   428
 Summary: 
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   429
 State: Not installed
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   430
 Publisher: test2
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   431
 Version: 1.0
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   432
 Build Release: 5.11
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   433
 Branch: 0
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   434
Packaging Date: Thu Sep 08 00:45:46 2011
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   435
 Size: 54.00 B
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   436
 FMRI: pkg://test2/[email protected],5.11-0:20110908T004546Z
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   437
"""
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   438
                self.assertEqualDiff(expected, self.reduceSpaces(self.output))
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   439
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   440
                self.pkg("info -r //test3/bronze //test2/bronze bronze")
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   441
                expected = """\
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   442
 Name: bronze
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   443
 Summary: 
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   444
 State: Not installed
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   445
 Publisher: test
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   446
 Version: 1.0
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   447
 Build Release: 5.11
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   448
 Branch: 0
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   449
Packaging Date: Thu Sep 08 00:45:46 2011
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   450
 Size: 54.00 B
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   451
 FMRI: pkg://test/[email protected],5.11-0:20110908T004546Z
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   452
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   453
 Name: bronze
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   454
 Summary: 
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   455
 State: Not installed
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   456
 Publisher: test2
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   457
 Version: 1.0
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   458
 Build Release: 5.11
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   459
 Branch: 0
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   460
Packaging Date: Thu Sep 08 00:45:46 2011
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   461
 Size: 54.00 B
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   462
 FMRI: pkg://test2/[email protected],5.11-0:20110908T004546Z
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   463
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   464
 Name: bronze
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   465
 Summary: 
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   466
 State: Not installed
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   467
 Publisher: test3
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   468
 Version: 1.0
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   469
 Build Release: 5.11
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   470
 Branch: 0
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   471
Packaging Date: Thu Sep 08 00:45:46 2011
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   472
 Size: 54.00 B
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   473
 FMRI: pkg://test3/[email protected],5.11-0:20110908T004546Z
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   474
"""
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   475
                self.assertEqualDiff(expected, self.reduceSpaces(self.output))
032eaff05522 17801 contents -r should return only highest-ranked match by default
Shawn Walker <shawn.walker@oracle.com>
parents: 2493
diff changeset
   476
1801
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   477
        def test_renamed_packages(self):
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   478
                """Verify that info returns the expected output for renamed
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   479
                packages."""
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   480
2915
a7756acea9ef 17075980 pkg strips newlines from release notes
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2893
diff changeset
   481
		# because we compare date strings we must run this in
a7756acea9ef 17075980 pkg strips newlines from release notes
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2893
diff changeset
   482
		# a consistent locale, which we made 'C'
a7756acea9ef 17075980 pkg strips newlines from release notes
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2893
diff changeset
   483
a7756acea9ef 17075980 pkg strips newlines from release notes
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2893
diff changeset
   484
		os.environ['LC_ALL'] = 'C'
a7756acea9ef 17075980 pkg strips newlines from release notes
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2893
diff changeset
   485
1801
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   486
                target10 = """
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   487
                    open [email protected]
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   488
                    close
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   489
                """
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   490
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   491
                # Renamed package for all variants, with correct dependencies.
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   492
                ren_correct10 = """
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   493
                    open [email protected]
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   494
                    add set name=pkg.renamed value=true
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   495
                    add depend type=require [email protected] variant.cat=bobcat
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   496
                    add depend type=require [email protected] variant.cat=lynx
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   497
                    close
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   498
                """
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   499
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   500
                # Renamed package for other variant, with dependencies only for
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   501
                # for other variant.
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   502
                ren_op_variant10 = """
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   503
                    open [email protected]
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   504
                    add set name=pkg.renamed value=true variant.cat=lynx
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   505
                    add depend type=require [email protected] variant.cat=lynx
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   506
                    close
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   507
                """
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   508
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   509
                # Renamed package for current image variant, with dependencies
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   510
                # only for other variant.
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   511
                ren_variant_missing10 = """
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   512
                    open [email protected]
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   513
                    add set name=pkg.renamed value=true variant.cat=bobcat
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   514
                    add depend type=require [email protected] variant.cat=lynx
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   515
                    close
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   516
                """
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   517
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   518
                # Renamed package for multiple variants, with dependencies
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   519
                # missing for one variant.
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   520
                ren_partial_variant10 = """
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   521
                    open [email protected]
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   522
                    add set name=pkg.renamed value=true
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   523
                    add depend type=require [email protected] variant.cat=lynx
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   524
                    close
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   525
                """
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   526
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
   527
                plist = self.pkgsend_bulk(self.rurl, (target10, ren_correct10,
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
   528
                    ren_op_variant10, ren_variant_missing10,
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
   529
                    ren_partial_variant10))
1801
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   530
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   531
                # Create an image.
1859
6e6e866921e7 529 client can traceback with EBUSY during action removal
Shawn Walker <shawn.walker@oracle.com>
parents: 1801
diff changeset
   532
                variants = { "variant.cat": "bobcat" }
1895
0a260cc2a689 15762 client support for filesystem-based repository access
Shawn Walker <shawn.walker@oracle.com>
parents: 1859
diff changeset
   533
                self.image_create(self.rurl, variants=variants)
1801
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   534
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   535
                # First, verify that a renamed package (for all variants), and
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   536
                # with the correct dependencies will provide the expected info.
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   537
                self.pkg("info -r ren_correct")
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   538
                actual = self.output
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   539
                pfmri = fmri.PkgFmri(plist[1], "5.11")
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   540
                pkg_date = pfmri.version.get_timestamp().strftime("%c")
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   541
                expected = """\
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   542
          Name: ren_correct
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   543
       Summary: 
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   544
         State: Not installed (Renamed)
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   545
    Renamed to: [email protected]
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   546
     Publisher: test
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   547
       Version: 1.0
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   548
 Build Release: 5.11
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   549
        Branch: None
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   550
Packaging Date: %(pkg_date)s
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   551
          Size: 0.00 B
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   552
          FMRI: %(pkg_fmri)s
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   553
""" % { "pkg_date": pkg_date, "pkg_fmri": pfmri }
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   554
                self.assertEqualDiff(expected, actual)
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   555
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   556
                # Next, verify that a renamed package (for a variant not
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   557
                # applicable to this image), and with dependencies that
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   558
                # are only for that other variant will provide the expected
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   559
                # info.  Ensure package isn't seen as renamed for current
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   560
                # variant.
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   561
                self.pkg("info -r ren_op_variant")
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   562
                actual = self.output
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   563
                pfmri = fmri.PkgFmri(plist[2], "5.11")
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   564
                pkg_date = pfmri.version.get_timestamp().strftime("%c")
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   565
                expected = """\
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   566
          Name: ren_op_variant
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   567
       Summary: 
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   568
         State: Not installed
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   569
     Publisher: test
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   570
       Version: 1.0
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   571
 Build Release: 5.11
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   572
        Branch: None
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   573
Packaging Date: %(pkg_date)s
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   574
          Size: 0.00 B
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   575
          FMRI: %(pkg_fmri)s
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   576
""" % { "pkg_date": pkg_date, "pkg_fmri": pfmri }
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   577
                self.assertEqualDiff(expected, actual)
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   578
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   579
                # Next, verify that a renamed package (for a variant applicable
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   580
                # to this image), and with dependencies that are only for that
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   581
                # other variant will provide the expected info.
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   582
                self.pkg("info -r ren_variant_missing")
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   583
                actual = self.output
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   584
                pfmri = fmri.PkgFmri(plist[3], "5.11")
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   585
                pkg_date = pfmri.version.get_timestamp().strftime("%c")
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   586
                expected = """\
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   587
          Name: ren_variant_missing
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   588
       Summary: 
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   589
         State: Not installed (Renamed)
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   590
    Renamed to: 
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   591
     Publisher: test
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   592
       Version: 1.0
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   593
 Build Release: 5.11
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   594
        Branch: None
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   595
Packaging Date: %(pkg_date)s
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   596
          Size: 0.00 B
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   597
          FMRI: %(pkg_fmri)s
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   598
""" % { "pkg_date": pkg_date, "pkg_fmri": pfmri }
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   599
                self.assertEqualDiff(expected, actual)
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   600
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   601
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   602
                # Next, verify that a renamed package (for all variants),
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   603
                # but that is missing a dependency for the current variant
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   604
                # will provide the expected info.
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   605
                self.pkg("info -r ren_partial_variant")
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   606
                actual = self.output
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   607
                pfmri = fmri.PkgFmri(plist[4], "5.11")
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   608
                pkg_date = pfmri.version.get_timestamp().strftime("%c")
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   609
                expected = """\
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   610
          Name: ren_partial_variant
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   611
       Summary: 
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   612
         State: Not installed (Renamed)
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   613
    Renamed to: 
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   614
     Publisher: test
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   615
       Version: 1.0
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   616
 Build Release: 5.11
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   617
        Branch: None
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   618
Packaging Date: %(pkg_date)s
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   619
          Size: 0.00 B
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   620
          FMRI: %(pkg_fmri)s
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   621
""" % { "pkg_date": pkg_date, "pkg_fmri": pfmri }
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   622
                self.assertEqualDiff(expected, actual)
09b5c1ddef24 14832 pkg info traceback for renamed packages with no variant-applicable dependencies
Shawn Walker <srw@sun.com>
parents: 1755
diff changeset
   623
2712
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   624
        def test_appropriate_license_files(self):
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   625
                """Verify that the correct license file is displayed."""
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   626
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   627
                self.image_create(self.rurl)
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   628
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   629
                self.pkg("info -r --license bronze")
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   630
                self.assertEqual("tmp/copyright1\n", self.output)
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   631
                self.pkg("info -r --license [email protected]")
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   632
                self.assertEqual("tmp/copyright0\n", self.output)
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   633
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   634
                self.pkg("install --licenses [email protected]")
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   635
                self.assert_("tmp/copyright0" in self.output, "Expected "
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   636
                    "tmp/copyright0 to be in the output of the install. Output "
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   637
                    "was:\n%s" % self.output)
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   638
                self.pkg("info -l --license bronze")
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   639
                self.assertEqual("tmp/copyright0\n", self.output)
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   640
                self.pkg("info -r --license bronze")
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   641
                self.assertEqual("tmp/copyright1\n", self.output)
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   642
                self.pkg("info -r --license [email protected]")
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   643
                self.assertEqual("tmp/copyright1\n", self.output)
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   644
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   645
                self.pkg("update --licenses [email protected]")
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   646
                self.assert_("tmp/copyright1" in self.output, "Expected "
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   647
                    "tmp/copyright1 to be in the output of the install. Output "
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   648
                    "was:\n%s" % self.output)
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   649
                self.pkg("info -r --license bronze")
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   650
                self.assertEqual("tmp/copyright1\n", self.output)
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   651
                self.pkg("info -l --license bronze")
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   652
                self.assertEqual("tmp/copyright1\n", self.output)
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   653
                self.pkg("info -r --license [email protected]")
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   654
                self.assertEqual("tmp/copyright0\n", self.output)
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2547
diff changeset
   655
1755
8e1ed1373f93 9123 client traceback during install for bad file mode
Shawn Walker <srw@sun.com>
parents: 1730
diff changeset
   656
2753
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   657
class TestPkgInfoPerTestRepo(pkg5unittest.SingleDepotTestCase):
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   658
        """A separate test class is needed because these tests modify packages
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   659
        after they've been published and need to avoid corrupting packages for
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   660
        other tests."""
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   661
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   662
        persistent_setup = False
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   663
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   664
        bronze10 = """
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   665
            open [email protected],5.11-0:20110908T004546Z
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   666
            add dir mode=0755 owner=root group=bin path=/usr
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   667
            add dir mode=0755 owner=root group=bin path=/usr/bin
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   668
            add file tmp/sh mode=0555 owner=root group=bin path=/usr/bin/sh
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   669
            add link path=/usr/bin/jsh target=./sh
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   670
            add file tmp/bronze1 mode=0444 owner=root group=bin path=/etc/bronze1
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   671
            add file tmp/bronze2 mode=0444 owner=root group=bin path=/etc/bronze2
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   672
            add file tmp/bronzeA1 mode=0444 owner=root group=bin path=/A/B/C/D/E/F/bronzeA1
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   673
            add license tmp/copyright1 license=copyright
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   674
            close
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   675
        """
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   676
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   677
        misc_files = [ "tmp/bronzeA1", "tmp/bronze1", "tmp/bronze2", "tmp/cat",
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   678
            "tmp/copyright1", "tmp/sh"]
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   679
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   680
        def setUp(self):
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   681
                pkg5unittest.SingleDepotTestCase.setUp(self)
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   682
                self.make_misc_files(self.misc_files)
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   683
                self.plist = self.pkgsend_bulk(self.rurl, (self.bronze10))
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   684
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   685
        def __mangle_license(self, fmri):
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   686
                repo = self.dc.get_repo()
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   687
                m_path = repo.manifest(fmri)
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   688
                with open(m_path, "rb") as fh:
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   689
                        fmri_lines = fh.readlines()
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   690
                with open(m_path, "wb") as fh:
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   691
                        a = None
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   692
                        for l in fmri_lines:
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   693
                                if "license=copyright" in l:
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   694
                                        continue
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   695
                                elif "path=etc/bronze1" in l:
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   696
                                        a = actions.fromstr(l)
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   697
                                fh.write(l)
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   698
                        self.assert_(a)
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   699
                        l = """\
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   700
license %(hash)s license=foo chash=%(chash)s pkg.csize=%(csize)s \
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   701
pkg.size=%(size)s""" % {
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   702
    "hash":a.hash,
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   703
    "chash":a.attrs["chash"],
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   704
    "csize":a.attrs["pkg.csize"],
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   705
    "size":a.attrs["pkg.size"]
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   706
}
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   707
                        fh.write(l)
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   708
                repo.rebuild()
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   709
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   710
        def test_info_installed_changed_manifest(self):
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   711
                """Test that if an installed manifest has changed in the
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   712
                repository the original manifest is used for pkg info and info
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   713
                -r."""
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   714
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   715
                self.image_create(self.rurl)
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   716
                self.pkg("install bronze")
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   717
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   718
                self.pkg("info --license bronze")
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   719
                self.assert_("tmp/copyright1" in self.output)
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   720
                self.__mangle_license(self.plist[0])
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   721
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   722
                self.pkg("refresh --full")
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   723
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   724
                self.pkg("info --license bronze")
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   725
                self.assert_("tmp/bronze1" not in self.output)
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   726
                self.assert_("tmp/copyright1" in self.output)
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   727
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   728
                self.pkg("info -r --license bronze")
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   729
                self.assert_("tmp/bronze1" not in self.output)
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   730
                self.assert_("tmp/copyright1" in self.output)
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   731
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   732
        def test_info_uninstalled_changed_manifest(self):
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   733
                """Test that if an uninstalled manifest has changed in the
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   734
                repository but is cached locally, that the changed manifest is
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   735
                reflected in info -r."""
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   736
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   737
                # First test remote retrieval.
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   738
                self.image_create(self.rurl)
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   739
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   740
                self.pkg("info -r  --license bronze")
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   741
                self.assert_("tmp/copyright1" in self.output)
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   742
                self.__mangle_license(self.plist[0])
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   743
                self.pkg("refresh --full")
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   744
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   745
                self.pkg("info -r  --license bronze")
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   746
                self.assert_("tmp/bronze1" in self.output)
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   747
                self.assert_("tmp/copyright1" not in self.output)
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   748
4d4b2324d1c0 7139940 cached manifests persist for packages not currently installed even when copy in repository changes
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2712
diff changeset
   749
581
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   750
if __name__ == "__main__":
faca6a8e7366 3125 CLI test restructuring
erik.lafever@sun.com
parents:
diff changeset
   751
        unittest.main()