src/tests/cli/t_pkg_temp_sources.py
author Yiteng Zhang <yiteng.zhang@oracle.com>
Wed, 01 Jul 2015 16:20:01 -0700
changeset 3234 3a90dc0b66c9
parent 3193 618a7acf5f09
child 3321 52e8eec3014c
permissions -rw-r--r--
21188662 use six library for python 3 migration
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2320
b02a1adb7324 18222 pkg info --license can fail with "unknown publisher" when using -g (fix shebang)
Shawn Walker <shawn.walker@oracle.com>
parents: 2313
diff changeset
     1
#!/usr/bin/python
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     2
#
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     3
# CDDL HEADER START
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     4
#
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     8
#
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    12
# and limitations under the License.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    13
#
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    19
#
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    20
# CDDL HEADER END
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    21
#
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    22
2690
11a8cae074e0 7140224 package downloaded messages displayed twice for each zone
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2593
diff changeset
    23
#
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
    24
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
2690
11a8cae074e0 7140224 package downloaded messages displayed twice for each zone
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2593
diff changeset
    25
#
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    26
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    27
import testutils
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    28
if __name__ == "__main__":
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    29
        testutils.setup_environment("../../../proto")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    30
import pkg5unittest
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    31
3193
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
    32
import json
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    33
import os
3193
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
    34
import pkg.catalog as catalog
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    35
import pkg.fmri as fmri
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    36
import pkg.portable as portable
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    37
import pkg.misc as misc
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    38
import pkg.p5p
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    39
import shutil
3234
3a90dc0b66c9 21188662 use six library for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3193
diff changeset
    40
import six
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    41
import stat
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    42
import tempfile
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    43
import unittest
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    44
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    45
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    46
class TestPkgTempSources(pkg5unittest.ManyDepotTestCase):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    47
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    48
        # Don't discard repository or setUp() every test.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    49
        persistent_setup = True
2272
d81ea073d050 3617 Testsuite should allow choice for base port to use
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2219
diff changeset
    50
        # Tests in this suite use the read only data directory.
d81ea073d050 3617 Testsuite should allow choice for base port to use
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2219
diff changeset
    51
        need_ro_data = True
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    52
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    53
        foo_pkg = """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    54
            open pkg://test/[email protected]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    55
            add set name=pkg.summary value="Example package foo."
2339
aa5954c06b9d 16148 need linked image support for zones, phase 1
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2336
diff changeset
    56
            add set name=variant.debug.foo value=true value=false
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    57
            add dir mode=0755 owner=root group=bin path=lib
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    58
            add dir mode=0755 owner=root group=bin path=usr
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    59
            add dir mode=0755 owner=root group=bin path=usr/bin
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    60
            add dir mode=0755 owner=root group=bin path=usr/local
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    61
            add dir mode=0755 owner=root group=bin path=usr/local/bin
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    62
            add dir mode=0755 owner=root group=bin path=usr/share
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    63
            add dir mode=0755 owner=root group=bin path=usr/share/doc
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    64
            add dir mode=0755 owner=root group=bin path=usr/share/doc/foo
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    65
            add dir mode=0755 owner=root group=bin path=usr/share/man
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    66
            add dir mode=0755 owner=root group=bin path=usr/share/man/man1
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    67
            add file tmp/foo mode=0755 owner=root group=bin path=usr/bin/foo
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    68
            add file tmp/libfoo.so.1 mode=0755 owner=root group=bin path=lib/libfoo.so.1 variant.debug.foo=false
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    69
            add file tmp/libfoo_debug.so.1 mode=0755 owner=root group=bin path=lib/libfoo.so.1 variant.debug.foo=true
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    70
            add file tmp/foo.1 mode=0444 owner=root group=bin path=usr/share/man/man1/foo.1 facet.doc.man=true
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    71
            add file tmp/README mode=0444 owner=root group=bin path=/usr/share/doc/foo/README
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    72
            add link path=usr/local/bin/soft-foo target=usr/bin/foo
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    73
            add hardlink path=usr/local/bin/hard-foo target=/usr/bin/foo
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    74
            close """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    75
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    76
        incorp_pkg = """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    77
            open pkg://test/[email protected]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    78
            add set name=pkg.summary value="Incorporation"
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    79
            add depend type=incorporate [email protected],5.11-0.1
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    80
            close
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    81
            open pkg://test/[email protected]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    82
            add set name=pkg.summary value="Incorporation"
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    83
            add depend type=incorporate [email protected],5.11-0.2
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    84
            close """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    85
2313
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
    86
        licensed_pkg = """
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
    87
            open pkg://test2/[email protected]
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
    88
            add license tmp/LICENSE license=sample_license
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
    89
            close """
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
    90
2712
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
    91
        licensed_pkg_2 = """
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
    92
            open pkg://test2/[email protected]
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
    93
            add license tmp/LICENSE2 license=sample_license
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
    94
            close """
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
    95
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    96
        signed_pkg = """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    97
            open pkg://test/[email protected]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    98
            add depend type=require [email protected]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
    99
            add dir mode=0755 owner=root group=bin path=usr/bin
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   100
            add file tmp/quux mode=0755 owner=root group=bin path=usr/bin/quark
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   101
            add set name=authorized.species value=bobcat
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   102
            close """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   103
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   104
        quux_pkg = """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   105
            open pkg://test2/[email protected],5.11-0.1
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   106
            add set name=pkg.summary value="Example package quux."
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   107
            add depend type=require fmri=pkg:/incorp
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   108
            close
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   109
            open pkg://test2/[email protected],5.11-0.2
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   110
            add set name=pkg.summary value="Example package quux."
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   111
            add depend type=require fmri=pkg:/incorp
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   112
            add dir mode=0755 owner=root group=bin path=usr
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   113
            add dir mode=0755 owner=root group=bin path=usr/bin
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   114
            add file tmp/quux mode=0755 owner=root group=bin path=usr/bin/quux
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   115
            close """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   116
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   117
        misc_files = ["tmp/foo", "tmp/libfoo.so.1", "tmp/libfoo_debug.so.1",
2712
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
   118
            "tmp/foo.1", "tmp/README", "tmp/LICENSE", "tmp/LICENSE2", "tmp/quux"]
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   119
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   120
        def __seed_ta_dir(self, certs, dest_dir=None):
3234
3a90dc0b66c9 21188662 use six library for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3193
diff changeset
   121
                if isinstance(certs, six.string_types):
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   122
                        certs = [certs]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   123
                if not dest_dir:
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   124
                        dest_dir = self.ta_dir
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   125
                self.assert_(dest_dir)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   126
                self.assert_(self.raw_trust_anchor_dir)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   127
                for c in certs:
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   128
                        name = "{0}_cert.pem".format(c)
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   129
                        portable.copyfile(
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   130
                            os.path.join(self.raw_trust_anchor_dir, name),
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   131
                            os.path.join(dest_dir, name))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   132
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   133
        def __publish_packages(self, rurl):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   134
                """Private helper function to publish packages needed for
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   135
                testing.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   136
                """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   137
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   138
                pkgs = "".join([self.foo_pkg, self.incorp_pkg, self.signed_pkg,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   139
                    self.quux_pkg])
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   140
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   141
                # Publish packages needed for tests.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   142
                plist = self.pkgsend_bulk(rurl, pkgs)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   143
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   144
                # Sign the 'signed' package.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   145
                r = self.get_repo(self.dcs[1].get_repodir())
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   146
                sign_args = "-k {key} -c {cert} -i {i1} -i {i2} " \
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   147
                    "-i {i3} -i {i4} -i {i5} -i {i6} {pkg}".format(
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   148
                      key=os.path.join(self.keys_dir, "cs1_ch5_ta1_key.pem"),
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   149
                      cert=os.path.join(self.cs_dir, "cs1_ch5_ta1_cert.pem"),
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   150
                      i1=os.path.join(self.chain_certs_dir,
2286
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   151
                          "ch1_ta1_cert.pem"),
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   152
                      i2=os.path.join(self.chain_certs_dir,
2286
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   153
                          "ch2_ta1_cert.pem"),
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   154
                      i3= os.path.join(self.chain_certs_dir,
2286
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   155
                          "ch3_ta1_cert.pem"),
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   156
                      i4=os.path.join(self.chain_certs_dir,
2286
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   157
                          "ch4_ta1_cert.pem"),
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   158
                      i5=os.path.join(self.chain_certs_dir,
2286
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   159
                          "ch5_ta1_cert.pem"),
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   160
                      i6=os.path.join(self.chain_certs_dir,
2286
938fbb350ad2 16867 pkgsign should handle existing signatures better
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2272
diff changeset
   161
                          "ch1_ta3_cert.pem"),
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   162
                      pkg=plist[3]
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   163
                    )
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   164
                self.pkgsign(rurl, sign_args)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   165
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   166
                # This is just a test assertion to verify that the
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   167
                # package was signed as expected.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   168
                self.image_create(rurl, prefix=None)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   169
                self.__seed_ta_dir("ta1")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   170
                self.pkg("set-property signature-policy verify")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   171
                self.pkg("install signed")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   172
                self.image_destroy()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   173
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   174
                return [
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   175
                    fmri.PkgFmri(sfmri)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   176
                    for sfmri in plist
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   177
                ]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   178
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   179
        def __archive_packages(self, arc_name, repo, plist):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   180
                """Private helper function to archive packages needed for
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   181
                testing.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   182
                """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   183
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   184
                arc_path = os.path.join(self.test_root, arc_name)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   185
                assert not os.path.exists(arc_path)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   186
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   187
                arc = pkg.p5p.Archive(arc_path, mode="w")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   188
                for pfmri in plist:
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   189
                        arc.add_repo_package(pfmri, repo)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   190
                arc.close()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   191
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   192
                return arc_path
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   193
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   194
        def setUp(self):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   195
                pkg5unittest.ManyDepotTestCase.setUp(self, ["test", "test",
2313
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   196
                    "empty", "test2"])
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   197
                self.make_misc_files(self.misc_files)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   198
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   199
                # First repository will contain all packages.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   200
                self.all_rurl = self.dcs[1].get_repo_url()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   201
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   202
                # Second repository will contain only foo.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   203
                self.foo_rurl = self.dcs[2].get_repo_url()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   204
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   205
                # Third will be empty.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   206
                self.empty_rurl = self.dcs[3].get_repo_url()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   207
2313
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   208
                # Fourth will be for license packages only.
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   209
                self.licensed_rurl = self.dcs[4].get_repo_url()
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   210
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   211
                # Setup base test paths.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   212
                self.path_to_certs = os.path.join(self.ro_data_root,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   213
                    "signing_certs", "produced")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   214
                self.keys_dir = os.path.join(self.path_to_certs, "keys")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   215
                self.cs_dir = os.path.join(self.path_to_certs,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   216
                    "code_signing_certs")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   217
                self.chain_certs_dir = os.path.join(self.path_to_certs,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   218
                    "chain_certs")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   219
                self.raw_trust_anchor_dir = os.path.join(self.path_to_certs,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   220
                    "trust_anchors")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   221
                self.crl_dir = os.path.join(self.path_to_certs, "crl")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   222
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   223
                # Publish packages.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   224
                plist = self.__publish_packages(self.all_rurl)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   225
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   226
                # Copy foo to second repository.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   227
                self.pkgrecv(self.all_rurl, "-d {0} foo".format(self.foo_rurl))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   228
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   229
                # Now create a package archive containing all packages, and
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   230
                # then one for each.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   231
                repo = self.dcs[1].get_repo()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   232
                self.all_arc = self.__archive_packages("all_pkgs.p5p", repo,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   233
                    plist)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   234
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   235
                for alist in ([plist[0]], [plist[1], plist[2]], [plist[3]],
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   236
                    [plist[4], plist[5]]):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   237
                        arc_path = self.__archive_packages(
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   238
                            "{0}.p5p".format(alist[0].pkg_name), repo, alist)
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   239
                        setattr(self, "{0}_arc".format(alist[0].pkg_name), arc_path)
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   240
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   241
                self.ta_dir = None
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   242
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   243
                # Copy an archive and set its permissions to 0000 for testing
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   244
                # unprivileged user access attempts.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   245
                self.perm_arc = os.path.join(self.test_root, "noaccess.p5p")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   246
                portable.copyfile(self.foo_arc, self.perm_arc)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   247
                os.chmod(self.perm_arc, 0)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   248
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   249
                # Create an empty archive.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   250
                arc_path = os.path.join(self.test_root, "empty.p5p")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   251
                arc = pkg.p5p.Archive(arc_path, mode="w")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   252
                arc.close()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   253
                self.empty_arc = arc_path
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   254
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   255
                # Store FMRIs for later use.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   256
                self.foo10 = plist[0]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   257
                self.incorp10 = plist[1]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   258
                self.incorp20 = plist[2]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   259
                self.signed10 = plist[3]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   260
                self.quux01 = plist[4]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   261
                self.quux10 = plist[5]
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   262
2313
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   263
                # Handle license package specially.
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   264
                self.licensed10 = self.pkgsend_bulk(self.licensed_rurl,
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   265
                    self.licensed_pkg)[0]
2712
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
   266
                self.licensed20 = self.pkgsend_bulk(self.licensed_rurl,
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
   267
                    self.licensed_pkg_2)[0]
2313
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   268
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   269
        def test_00_list(self):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   270
                """Verify that the list operation works as expected for
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   271
                temporary origins.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   272
                """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   273
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   274
                # Create an image and verify no packages are known.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   275
                self.image_create(self.empty_rurl, prefix=None)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   276
                self.pkg("list -a", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   277
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   278
                # Verify graceful failure for an empty source alone or in
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   279
                # combination with another temporary source.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   280
                self.pkg("list -H -g {0}".format(self.empty_arc), exit=1)
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   281
                self.pkg("list -H -g {0} -g {1}".format(self.empty_arc,
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   282
                    self.foo_arc), exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   283
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   284
                # Verify graceful failure if source doesn't exist.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   285
                self.pkg("list -H -g {0}".format(self.foo_arc + ".nosuchpkg"),
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   286
                    exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   287
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   288
                # Verify graceful failure if user doesn't have permission to
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   289
                # access temporary source.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   290
                self.pkg("list -H -g {0}".format(self.perm_arc), su_wrap=True, exit=1)
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   291
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   292
                # Verify graceful list failure if -u is used with -g.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   293
                self.pkg("list -H -u -g {0}".format(self.foo_arc), exit=2)
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   294
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   295
                # Verify list output for a single package temporary source.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   296
                # -a is used here to verify that even though -a is implicit,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   297
                # it is not an error to specify it.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   298
                self.pkg("list -aH -g {0}".format(self.foo_arc))
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   299
                expected = "foo (test) 1.0 ---\n"
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   300
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   301
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   302
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   303
                # Note that -a is implicit when -g is used, so all of
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   304
                # the following tests purposefully omit it.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   305
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   306
                # Verify list output for a multiple package temporary source
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   307
                # as an unprivileged user.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   308
                self.pkg("list -fH -g {0}".format(self.all_arc), su_wrap=True)
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   309
                expected = \
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   310
                    ("foo (test) 1.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   311
                    "incorp (test) 2.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   312
                    "incorp (test) 1.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   313
                    "quux (test2) 1.0-0.2 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   314
                    "quux (test2) 0.1-0.1 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   315
                    "signed (test) 1.0 ---\n")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   316
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   317
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   318
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   319
                # Verify list output for a multiple package temporary source.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   320
                self.pkg("list -fH -g {0}".format(self.all_arc))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   321
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   322
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   323
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   324
                # Verify list output for multiple temporary sources using
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   325
                # different combinations of archives and repositories.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   326
                self.pkg("list -fH -g {0} -g {1}".format(self.signed_arc,
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   327
                    self.foo_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   328
                expected = \
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   329
                    ("foo (test) 1.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   330
                    "signed (test) 1.0 ---\n")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   331
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   332
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   333
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   334
                self.pkg("list -fH -g {0} -g {1} -g {2} -g {3}".format(self.signed_arc,
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   335
                    self.incorp_arc, self.quux_arc, self.foo_arc))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   336
                expected = \
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   337
                    ("foo (test) 1.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   338
                    "incorp (test) 2.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   339
                    "incorp (test) 1.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   340
                    "quux (test2) 1.0-0.2 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   341
                    "quux (test2) 0.1-0.1 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   342
                    "signed (test) 1.0 ---\n")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   343
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   344
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   345
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   346
                self.pkg("list -fH -g {0} -g {1} -g {2} -g {3}".format(self.signed_arc,
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   347
                    self.quux_arc, self.incorp_arc, self.foo_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   348
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   349
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   350
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   351
                self.pkg("list -fH -g {0} -g {1}".format(self.all_arc,
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   352
                    self.all_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   353
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   354
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   355
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   356
                # Verify list -g without -f.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   357
                self.pkg("list -H -g {0} -g {1} -g {2} -g {3}".format(self.signed_arc,
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   358
                    self.quux_arc, self.incorp_arc, self.foo_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   359
                expected = \
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   360
                    ("foo (test) 1.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   361
                    "incorp (test) 2.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   362
                    "quux (test2) 1.0-0.2 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   363
                    "signed (test) 1.0 ---\n")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   364
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   365
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   366
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   367
                # Verify package installed from archive shows in default list
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   368
                # output.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   369
                self.pkg("install -g {0} [email protected]".format(self.incorp_arc))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   370
                self.pkg("list -H")
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   371
                expected = "incorp (test) 1.0 i--\n"
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   372
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   373
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   374
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   375
                # Verify list -g with an incorp installed without -f.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   376
                self.pkg("list -H -g {0} -g {1} -g {2} -g {3}".format(self.signed_arc,
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   377
                    self.quux_arc, self.incorp_arc, self.foo_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   378
                expected = \
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   379
                    ("foo (test) 1.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   380
                    "incorp (test) 1.0 i--\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   381
                    "quux (test2) 0.1-0.1 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   382
                    "signed (test) 1.0 ---\n")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   383
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   384
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   385
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   386
                # Verify output again as unprivileged user.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   387
                self.pkg("list -H -g {0} -g {1} -g {2} -g {3}".format(self.signed_arc,
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   388
                    self.quux_arc, self.incorp_arc, self.foo_rurl),
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   389
                    su_wrap=True)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   390
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   391
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   392
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   393
                # Verify list -g with an incorp installed with -f.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   394
                self.pkg("list -fH -g {0} -g {1} -g {2} -g {3}".format(self.signed_arc,
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   395
                    self.quux_arc, self.incorp_arc, self.foo_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   396
                expected = \
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   397
                    ("foo (test) 1.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   398
                    "incorp (test) 2.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   399
                    "incorp (test) 1.0 i--\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   400
                    "quux (test2) 1.0-0.2 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   401
                    "quux (test2) 0.1-0.1 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   402
                    "signed (test) 1.0 ---\n")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   403
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   404
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   405
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   406
                # Verify list -g with an incorp installed and -n.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   407
                self.pkg("list -nH -g {0} -g {1} -g {2} -g {3}".format(self.signed_arc,
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   408
                    self.quux_arc, self.incorp_arc, self.foo_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   409
                expected = \
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   410
                    ("foo (test) 1.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   411
                    "incorp (test) 2.0 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   412
                    "quux (test2) 1.0-0.2 ---\n"
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   413
                    "signed (test) 1.0 ---\n")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   414
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   415
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   416
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   417
                # Uninstall all packages and verify there are no known packages.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   418
                self.pkg("uninstall \*")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   419
                self.pkg("list -af", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   420
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   421
                # Cleanup.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   422
                self.image_destroy()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   423
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   424
        def test_01_info(self):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   425
                """Verify that the info operation works as expected for
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   426
                temporary origins.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   427
                """
2915
a7756acea9ef 17075980 pkg strips newlines from release notes
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2753
diff changeset
   428
		# 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: 2753
diff changeset
   429
		# a consistent locale, which we made 'C'
a7756acea9ef 17075980 pkg strips newlines from release notes
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2753
diff changeset
   430
a7756acea9ef 17075980 pkg strips newlines from release notes
Bart Smaalders <Bart.Smaalders@Oracle.COM>
parents: 2753
diff changeset
   431
		os.environ['LC_ALL'] = 'C'
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   432
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   433
                # Create an image and verify no packages are known.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   434
                self.image_create(self.empty_rurl, prefix=None)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   435
                self.pkg("list -a", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   436
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   437
                # Verify graceful failure for an empty source alone or in
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   438
                # combination with another temporary source.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   439
                self.pkg("info -g {0} \*".format(self.empty_arc), exit=1)
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   440
                self.pkg("info -g {0} -g {1} foo".format(self.empty_arc,
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   441
                    self.foo_arc), exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   442
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   443
                # Verify graceful failure if source doesn't exist.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   444
                self.pkg("info -g {0} foo".format(self.foo_arc + ".nosuchpkg"),
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   445
                    exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   446
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   447
                # Verify graceful failure if user doesn't have permission to
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   448
                # access temporary source.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   449
                self.pkg("info -g {0} foo".format(self.perm_arc), su_wrap=True, exit=1)
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   450
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   451
                # Verify graceful failure if -l is used with -g.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   452
                self.pkg("info -l -g {0} foo".format(self.foo_arc), exit=2)
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   453
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   454
                # Verify output for a single package temporary source.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   455
                # -r is used here to verify that even though -r is implicit,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   456
                # it is not an error to specify it.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   457
                def pd(pfmri):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   458
                        return pfmri.version.get_timestamp().strftime("%c")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   459
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   460
                self.pkg("info -r -g {0} foo".format(self.foo_arc), su_wrap=True)
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   461
                expected = """\
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   462
          Name: foo
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   463
       Summary: Example package foo.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   464
         State: Not installed
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   465
     Publisher: test
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   466
       Version: 1.0
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   467
        Branch: None
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   468
Packaging Date: {pkg_date}
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   469
          Size: 41.00 B
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   470
          FMRI: {pkg_fmri}
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   471
""".format(pkg_date=pd(self.foo10), pkg_fmri=self.foo10.get_fmri(
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   472
    include_build=False))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   473
                self.assertEqualDiff(expected, self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   474
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   475
                # Again, as prvileged user.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   476
                self.pkg("info -r -g {0} foo".format(self.foo_arc))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   477
                self.assertEqualDiff(expected, self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   478
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   479
                # Note that -r is implicit when -g is used, so all of
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   480
                # the following tests purposefully omit it.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   481
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   482
                # Verify info output for a multiple package temporary source
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   483
                # as an unprivileged user.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   484
                self.pkg("info -g {0} \*".format(self.all_arc), su_wrap=True)
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   485
                expected = """\
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   486
          Name: foo
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   487
       Summary: Example package foo.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   488
         State: Not installed
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   489
     Publisher: test
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   490
       Version: 1.0
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   491
        Branch: None
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   492
Packaging Date: {foo10_pkg_date}
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   493
          Size: 41.00 B
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   494
          FMRI: {foo10_pkg_fmri}
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   495
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   496
          Name: incorp
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   497
       Summary: Incorporation
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   498
         State: Not installed
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   499
     Publisher: test
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   500
       Version: 2.0
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   501
        Branch: None
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   502
Packaging Date: {incorp20_pkg_date}
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   503
          Size: 0.00 B
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   504
          FMRI: {incorp20_pkg_fmri}
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   505
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   506
          Name: quux
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   507
       Summary: Example package quux.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   508
         State: Not installed
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   509
     Publisher: test2
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   510
       Version: 1.0
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   511
        Branch: 0.2
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   512
Packaging Date: {quux10_pkg_date}
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   513
          Size: 8.00 B
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   514
          FMRI: {quux10_pkg_fmri}
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   515
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   516
          Name: signed
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   517
         State: Not installed
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   518
     Publisher: test
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   519
       Version: 1.0
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   520
        Branch: None
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   521
Packaging Date: {signed10_pkg_date}
3000
7cf05f1a8ebd 17913496 certificates for test suite are expiring
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 2958
diff changeset
   522
          Size: 7.81 kB
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   523
          FMRI: {signed10_pkg_fmri}
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   524
""".format(**{"foo10_pkg_date": pd(self.foo10), "foo10_pkg_fmri": \
2958
868e07939116 16851082 build_release (aka build version) should not be displayed
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 2915
diff changeset
   525
        self.foo10.get_fmri(include_build=False),
868e07939116 16851082 build_release (aka build version) should not be displayed
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 2915
diff changeset
   526
    "incorp20_pkg_date": pd(self.incorp20), "incorp20_pkg_fmri": \
868e07939116 16851082 build_release (aka build version) should not be displayed
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 2915
diff changeset
   527
        self.incorp20.get_fmri(include_build=False),
868e07939116 16851082 build_release (aka build version) should not be displayed
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 2915
diff changeset
   528
    "quux10_pkg_date": pd(self.quux10), "quux10_pkg_fmri": \
868e07939116 16851082 build_release (aka build version) should not be displayed
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 2915
diff changeset
   529
        self.quux10.get_fmri(include_build=False),
868e07939116 16851082 build_release (aka build version) should not be displayed
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 2915
diff changeset
   530
    "signed10_pkg_date": pd(self.signed10), "signed10_pkg_fmri": \
868e07939116 16851082 build_release (aka build version) should not be displayed
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 2915
diff changeset
   531
        self.signed10.get_fmri(include_build=False),
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   532
    })
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   533
                self.assertEqualDiff(expected, self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   534
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   535
                # Verify info output for a multiple package temporary source.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   536
                self.pkg("info -g {0} [email protected] [email protected] [email protected] "
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   537
                    "[email protected]".format(self.all_arc))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   538
                self.assertEqualDiff(expected, self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   539
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   540
                # Verify info result for multiple temporary sources using
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   541
                # different combinations of archives and repositories.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   542
                self.pkg("info -g {0} -g {1} [email protected] [email protected] [email protected]".format(
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   543
                    self.signed_arc, self.foo_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   544
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   545
                self.pkg("info -g {0} -g {1} -g {2} -g {3} [email protected] [email protected] "
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   546
                    "[email protected] [email protected]".format(
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   547
                    self.signed_arc, self.incorp_arc, self.quux_arc,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   548
                    self.foo_arc))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   549
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   550
                self.pkg("info -g {0} -g {1} -g {2} -g {3} [email protected] [email protected] "
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   551
                    "[email protected] [email protected]".format(
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   552
                    self.signed_arc, self.incorp_arc, self.quux_arc,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   553
                    self.foo_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   554
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   555
                self.pkg("info -g {0} -g {1} [email protected] [email protected] [email protected] "
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   556
                    "[email protected]".format(self.all_arc, self.all_rurl))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   557
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   558
                # Verify package installed from archive shows in default info
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   559
                # output.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   560
                self.pkg("install -g {0} [email protected]".format(self.foo_arc))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   561
                self.pkg("info")
3193
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
   562
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
   563
                os.environ["LC_ALL"] = "C"
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
   564
                path = os.path.join(self.img_path(),
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
   565
                    "var/pkg/state/installed/catalog.base.C")
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
   566
                entry = json.load(open(path))["test"]["foo"][0]["metadata"]
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
   567
                pkg_install = catalog.basic_ts_to_datetime(
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
   568
                    entry["last-install"]).strftime("%c")
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
   569
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   570
                expected = """\
3193
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
   571
             Name: foo
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
   572
          Summary: Example package foo.
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
   573
            State: Installed
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
   574
        Publisher: test
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
   575
          Version: 1.0
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
   576
           Branch: None
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
   577
   Packaging Date: {pkg_date}
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
   578
Last Install Time: {pkg_install}
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
   579
             Size: 41.00 B
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
   580
             FMRI: {pkg_fmri}
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   581
""".format(pkg_date=pd(self.foo10), pkg_fmri=self.foo10.get_fmri(
3193
618a7acf5f09 18687070 pkg install and update times in pkg info output desired
Chao Pan <chao.pan@oracle.com>
parents: 3158
diff changeset
   582
    include_build=False), pkg_install=pkg_install)
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   583
                self.assertEqualDiff(expected, self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   584
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   585
                # Verify that when showing package info from archive that
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   586
                # package shows as installed if it matches the installed one.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   587
                self.pkg("info -g {0} foo".format(self.foo_arc))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   588
                self.assertEqualDiff(expected, self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   589
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   590
                # Uninstall all packages and verify there are no known packages.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   591
                self.pkg("uninstall \*")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   592
                self.pkg("info -r \*", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   593
2313
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   594
                # Verify that --license works as expected with -g.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   595
                self.pkg("info -g {0} --license [email protected]".format(
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   596
                    self.licensed_rurl))
2313
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   597
                self.assertEqualDiff("tmp/LICENSE\n", self.output)
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   598
                self.pkg("info -g {0} --license licensed".format(
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   599
                    self.licensed_rurl))
2712
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
   600
                self.assertEqualDiff("tmp/LICENSE2\n", self.output)
2313
62501ec54db1 18222 pkg info --license can fail with "unknown publisher" when using -g
Shawn Walker <shawn.walker@oracle.com>
parents: 2310
diff changeset
   601
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   602
                # Cleanup.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   603
                self.image_destroy()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   604
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   605
        def test_02_contents(self):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   606
                """Verify that the contents operation works as expected for
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   607
                temporary origins.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   608
                """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   609
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   610
                # Create an image and verify no packages are known.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   611
                self.image_create(self.empty_rurl, prefix=None)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   612
                self.pkg("list -a", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   613
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   614
                # Verify graceful failure for an empty source alone or in
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   615
                # combination with another temporary source.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   616
                self.pkg("contents -g {0} \*".format(self.empty_arc), exit=1)
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   617
                self.pkg("contents -g {0} -g {1} foo".format(self.empty_arc,
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   618
                    self.foo_arc), exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   619
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   620
                # Verify graceful failure if source doesn't exist.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   621
                self.pkg("contents -g {0} foo".format(self.foo_arc + ".nosuchpkg"),
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   622
                    exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   623
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   624
                # Verify graceful failure if user doesn't have permission to
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   625
                # access temporary source.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   626
                self.pkg("contents -g {0} foo".format(self.perm_arc), su_wrap=True,
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   627
                    exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   628
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   629
                # Verify output for a single package temporary source.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   630
                # -r is used here to verify that even though -r is implicit,
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   631
                # it is not an error to specify it.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   632
                def pd(pfmri):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   633
                        return pfmri.version.get_timestamp().strftime("%c")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   634
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   635
                self.pkg("contents -mr -g {0} foo".format(self.foo_arc), su_wrap=True)
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   636
                expected = """\
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   637
set name=pkg.fmri value={0}
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   638
set name=pkg.summary value="Example package foo."
2339
aa5954c06b9d 16148 need linked image support for zones, phase 1
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2336
diff changeset
   639
set name=variant.debug.foo value=true value=false
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   640
dir group=bin mode=0755 owner=root path=lib
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   641
dir group=bin mode=0755 owner=root path=usr
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   642
dir group=bin mode=0755 owner=root path=usr/bin
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   643
dir group=bin mode=0755 owner=root path=usr/local
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   644
dir group=bin mode=0755 owner=root path=usr/local/bin
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   645
dir group=bin mode=0755 owner=root path=usr/share
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   646
dir group=bin mode=0755 owner=root path=usr/share/doc
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   647
dir group=bin mode=0755 owner=root path=usr/share/doc/foo
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   648
dir group=bin mode=0755 owner=root path=usr/share/man
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   649
dir group=bin mode=0755 owner=root path=usr/share/man/man1
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   650
file 0acf1107d31f3bab406f8611b21b8fade78ac874 chash=20db00fbd7c9fb551e54c5b424bf24d48cf81b7a facet.doc.man=true group=bin mode=0444 owner=root path=usr/share/man/man1/foo.1 pkg.csize=29 pkg.size=9
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   651
file b265f2ec87c4a55eb2b6b4c926e7c65f7247a27e chash=5ae38559680146c49d647163ac2f60cdf43e20d8 group=bin mode=0755 owner=root path=usr/bin/foo pkg.csize=27 pkg.size=7
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   652
file 4ea0699d20b99238a877051e50406687fd4fe163 chash=7a23120f5a4f1eae2829a707020d0cdbab10e9a2 group=bin mode=0755 owner=root path=lib/libfoo.so.1 pkg.csize=41 pkg.size=21 variant.debug.foo=true
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   653
file a285ada5f3cae14ea00e97a8d99bd3e357cb0dca chash=97a09a2356d068d8dbe418de90012908c095d3e2 group=bin mode=0755 owner=root path=lib/libfoo.so.1 pkg.csize=35 pkg.size=15 variant.debug.foo=false
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   654
file dc84bd4b606fe43fc892eb245d9602b67f8cba38 chash=e1106f9505253dfe46aa48c353740f9e1896a844 group=bin mode=0444 owner=root path=usr/share/doc/foo/README pkg.csize=30 pkg.size=10
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   655
hardlink path=usr/local/bin/hard-foo target=/usr/bin/foo
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   656
link path=usr/local/bin/soft-foo target=usr/bin/foo
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   657
""".format(self.foo10)
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   658
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   659
                # Again, as prvileged user.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   660
                self.pkg("contents -mr -g {0} foo".format(self.foo_arc))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   661
                self.assertEqualDiff(sorted(expected.splitlines()),
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   662
                    sorted(self.output.splitlines()))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   663
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   664
                # Note that -r is implicit when -g is used, so all of
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   665
                # the following tests purposefully omit it.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   666
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   667
                # Verify contents result for multiple temporary sources using
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   668
                # different combinations of archives and repositories.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   669
                self.pkg("contents -g {0} -g {1} [email protected] [email protected] "
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   670
                    "[email protected]".format(self.signed_arc, self.foo_rurl))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   671
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   672
                self.pkg("contents -g {0} -g {1} -g {2} -g {3} [email protected] [email protected] "
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   673
                    "[email protected] [email protected]".format(self.signed_arc, self.incorp_arc,
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   674
                    self.quux_arc, self.foo_arc))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   675
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   676
                self.pkg("contents -g {0} -g {1} -g {2} -g {3} [email protected] [email protected] "
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   677
                    "[email protected] [email protected]".format(self.signed_arc, self.incorp_arc,
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   678
                    self.quux_arc, self.foo_rurl))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   679
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   680
                self.pkg("contents -g {0} -g {1} [email protected] [email protected] [email protected] "
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   681
                    "[email protected]".format(self.all_arc, self.all_rurl))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   682
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   683
                # Verify package installed from archive can be used with
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   684
                # contents.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   685
                self.pkg("install -g {0} [email protected]".format(self.foo_arc))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   686
                self.pkg("contents foo")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   687
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   688
                # Uninstall all packages and verify there are no known packages.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   689
                self.pkg("uninstall \*")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   690
                self.pkg("contents -r \*", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   691
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   692
                # Cleanup.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   693
                self.image_destroy()
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   694
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   695
        def test_03_install_update(self):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   696
                """Verify that install and update work as expected for temporary
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   697
                origins.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   698
                """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   699
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   700
                #
2593
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   701
                # Create an image with no configured package sources, and
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   702
                # verify that a package can be installed from a temporary
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   703
                # source.
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   704
                #
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   705
                self.image_create(self.empty_rurl, prefix=None)
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   706
                self.pkg("set-property signature-policy ignore")
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   707
                self.pkg("list -a", exit=1)
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   708
                self.pkg("install -g {0} foo".format(self.foo_arc))
2593
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   709
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   710
                #
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   711
                # Create an image with a network-based source, then make that
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   712
                # source unreachable and verify that a package can be installed
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   713
                # from a temporary source.
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   714
                #
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   715
                self.dcs[4].start()
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   716
                self.image_create(self.dcs[4].get_depot_url(), prefix=None)
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   717
                self.dcs[4].stop()
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   718
                self.pkg("set-property signature-policy ignore")
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   719
                self.pkg("list -a")
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   720
                # --no-refresh is required for now because -g combines temporary
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   721
                # sources with configured soures and pkg(5) currently treats
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   722
                # refresh failure as fatal.  See bug 18323.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   723
                self.pkg("install --no-refresh -g {0} foo".format(self.foo_arc))
2593
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   724
39deb6a29774 18716 captive_portal_test requires at least one configured source to be reachable even when specifying temporary sources
Shawn Walker <shawn.walker@oracle.com>
parents: 2518
diff changeset
   725
                #
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   726
                # Create an image and verify no packages are known.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   727
                #
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   728
                self.image_create(self.empty_rurl, prefix=None)
2511
9ce778d8c86a 16865 change default policy for images to be verify instead of ignore
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2414
diff changeset
   729
                self.pkg("set-property signature-policy ignore")
9ce778d8c86a 16865 change default policy for images to be verify instead of ignore
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2414
diff changeset
   730
                self.pkg("set-publisher --set-property signature-policy=ignore "
9ce778d8c86a 16865 change default policy for images to be verify instead of ignore
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2414
diff changeset
   731
                    "test")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   732
                self.pkg("list -a", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   733
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   734
                # Verify graceful failure if source doesn't exist.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   735
                self.pkg("install -g {0} foo".format(self.foo_arc + ".nosuchpkg"),
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   736
                    exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   737
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   738
                # Verify graceful failure if user doesn't have permission to
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   739
                # access temporary source.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   740
                self.pkg("install -g {0} foo".format(self.perm_arc), su_wrap=True,
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   741
                    exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   742
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   743
                # Verify attempting to install a package with a missing
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   744
                # dependency fails gracefully.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   745
                self.pkg("install -g {0} signed".format(self.signed_arc), exit=1)
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   746
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   747
                # Verify a package from a publisher not already configured can
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   748
                # be installed using temporary origins.  Installing a package
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   749
                # in this scenario will result in the publisher being added
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   750
                # but without any origin information.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   751
                self.pkg("install -g {0} foo".format(self.foo_arc))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   752
                self.pkg("list foo")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   753
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   754
                # Verify that publisher exists now (without origin information)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   755
                # and is enabled and sticky (-n omits disabled publishers).
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   756
                self.pkg("publisher -nH")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   757
                expected = """\
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   758
empty origin online F {0}/
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   759
test 
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   760
""".format(self.empty_rurl)
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   761
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   762
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   763
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   764
                # Verify that signed package can now be installed since
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   765
                # dependency was satisfied.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   766
                self.pkg("install -g {0} signed".format(self.signed_arc))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   767
                self.pkg("list foo signed")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   768
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   769
                # Verify that removing all packages leaves no packages known
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   770
                # even though publisher remains configured.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   771
                self.pkg("uninstall \*")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   772
                self.pkg("list -af", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   773
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   774
                # Verify publisher can be removed.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   775
                self.pkg("unset-publisher test")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   776
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   777
                #
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   778
                # Create an image using the foo archive.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   779
                #
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   780
                self.image_create(misc.parse_uri(self.foo_arc), prefix=None)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   781
                self.__seed_ta_dir("ta1")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   782
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   783
                # Verify that signed package can be installed and the archive
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   784
                # configured for the publisher allows dependencies to be
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   785
                # satisfied.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   786
                self.pkg("set-property signature-policy verify")
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   787
                self.pkg("install -g {0} signed".format(self.signed_arc))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   788
                self.pkg("list foo signed")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   789
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   790
                # Verify that removing all packages leaves only foo known.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   791
                self.pkg("uninstall \*")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   792
                self.pkg("list -aH")
2336
b318adf82ae0 18125 we don't like 'u' anymore or your 'x'-friend from that other 'state'
Shawn Walker <shawn.walker@oracle.com>
parents: 2320
diff changeset
   793
                expected = "foo 1.0 ---\n"
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   794
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   795
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   796
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   797
                #
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   798
                # Create an image and verify no packages are known.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   799
                #
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   800
                self.image_create(self.empty_rurl, prefix=None)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   801
                self.pkg("list -a", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   802
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   803
                # Install an older version of a known package.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   804
                self.pkg("install -g {0} [email protected]".format(self.all_arc))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   805
                self.pkg("list [email protected] [email protected]")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   806
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   807
                # Verify graceful failure if source doesn't exist.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   808
                self.pkg("update -g {0} foo".format(self.foo_arc + ".nosuchpkg"),
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   809
                    exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   810
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   811
                # Verify graceful failure if user doesn't have permission to
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   812
                # access temporary source.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   813
                self.pkg("update -g {0} foo".format(self.perm_arc), su_wrap=True,
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   814
                    exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   815
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   816
                # Verify that packages can be updated using temporary origins.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   817
                self.pkg("update -g {0} -g {1}".format(self.incorp_arc,
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   818
                    self.quux_arc))
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   819
                self.pkg("list [email protected] [email protected]")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   820
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   821
                # Verify that both test and test2 are configured without
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   822
                # origins.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   823
                self.pkg("publisher -H")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   824
                expected = """\
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   825
empty origin online F {0}/
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   826
test 
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   827
test2 
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   828
""".format(self.empty_rurl)
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   829
                output = self.reduceSpaces(self.output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   830
                self.assertEqualDiff(expected, output)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   831
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   832
        def test_04_change_varcets(self):
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   833
                """Verify that change-facet and change-variant work as expected
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   834
                for temporary origins.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   835
                """
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   836
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   837
                #
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   838
                # Create an image and verify no packages are known.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   839
                #
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   840
                self.image_create(self.empty_rurl, prefix=None)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   841
                self.pkg("list -a", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   842
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   843
                # Install a package from an archive.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   844
                self.pkg("install -g {0} foo".format(self.foo_arc))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   845
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   846
                #
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   847
                # Verify change-facet can use temporary origins.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   848
                #
2339
aa5954c06b9d 16148 need linked image support for zones, phase 1
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2336
diff changeset
   849
                fpath = os.path.join(self.img_path(),
aa5954c06b9d 16148 need linked image support for zones, phase 1
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2336
diff changeset
   850
                    "usr/share/man/man1/foo.1")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   851
                assert os.path.exists(fpath)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   852
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   853
                # Now set facet.doc.man to false and verify faceted item is
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   854
                # gone.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   855
                self.pkg("change-facet facet.doc.man=false")
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   856
                assert not os.path.exists(fpath)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   857
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   858
                # Now attempt to set the facet to true again; this should
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   859
                # fail.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   860
                self.pkg("change-facet facet.doc.man=true", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   861
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   862
                # Verify graceful failure if source doesn't exist.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   863
                self.pkg("change-facet -g {0} facet.doc.man=true".format(
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   864
                    self.foo_arc + ".nosuchpkg"), exit=1)
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   865
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   866
                # Verify graceful failure if user doesn't have permission to
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   867
                # access temporary source.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   868
                self.pkg("change-facet -g {0} facet.doc.man=true".format(
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   869
                    self.perm_arc), su_wrap=True, exit=1)
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   870
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   871
                # Verify that if the original archive is provided, the operation
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   872
                # will succeed.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   873
                self.pkg("change-facet -g {0} facet.doc.man=True".format(self.foo_arc))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   874
                assert os.path.exists(fpath)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   875
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   876
                #
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   877
                # Verify change-variant can use temporary origins.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   878
                #
2339
aa5954c06b9d 16148 need linked image support for zones, phase 1
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2336
diff changeset
   879
                vpath = os.path.join(self.img_path(),
aa5954c06b9d 16148 need linked image support for zones, phase 1
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2336
diff changeset
   880
                    "lib/libfoo.so.1")
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   881
                assert os.path.exists(vpath)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   882
                self.assertEqual(os.stat(vpath).st_size, 15)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   883
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   884
                # Now attempt to change the debug variant; this should fail.
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   885
                self.pkg("change-variant -vv variant.debug.foo=true", exit=1)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   886
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   887
                # Verify graceful failure if source doesn't exist.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   888
                self.pkg("change-variant -vvg {0} variant.debug.foo=true".format(
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   889
                    self.foo_arc + ".nosuchpkg"), exit=1)
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   890
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   891
                # Verify graceful failure if user doesn't have permission to
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   892
                # access temporary source.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   893
                self.pkg("change-variant -vvg {0} variant.debug.foo=true".format(
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   894
                    self.perm_arc), su_wrap=True, exit=1)
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   895
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   896
                # Verify that if the original archive is provided, the operation
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   897
                # will succeed.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   898
                self.pkg("change-variant -vvg {0} variant.debug.foo=true".format(
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   899
                    self.foo_arc))
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   900
                assert os.path.exists(vpath)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   901
                self.assertEqual(os.stat(vpath).st_size, 21)
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   902
2690
11a8cae074e0 7140224 package downloaded messages displayed twice for each zone
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2593
diff changeset
   903
        def test_05_staged_execution(self):
11a8cae074e0 7140224 package downloaded messages displayed twice for each zone
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2593
diff changeset
   904
                """Verify that staged execution works with temporary
11a8cae074e0 7140224 package downloaded messages displayed twice for each zone
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2593
diff changeset
   905
                origins."""
11a8cae074e0 7140224 package downloaded messages displayed twice for each zone
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2593
diff changeset
   906
11a8cae074e0 7140224 package downloaded messages displayed twice for each zone
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2593
diff changeset
   907
                # Create an image and verify no packages are known.
11a8cae074e0 7140224 package downloaded messages displayed twice for each zone
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2593
diff changeset
   908
                self.image_create(self.empty_rurl, prefix=None)
11a8cae074e0 7140224 package downloaded messages displayed twice for each zone
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2593
diff changeset
   909
                self.pkg("list -a", exit=1)
11a8cae074e0 7140224 package downloaded messages displayed twice for each zone
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2593
diff changeset
   910
11a8cae074e0 7140224 package downloaded messages displayed twice for each zone
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2593
diff changeset
   911
                # Install an older version of a known package.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   912
                self.pkg("install -g {0} [email protected]".format(self.all_arc))
2690
11a8cae074e0 7140224 package downloaded messages displayed twice for each zone
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2593
diff changeset
   913
                self.pkg("list [email protected] [email protected]")
11a8cae074e0 7140224 package downloaded messages displayed twice for each zone
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2593
diff changeset
   914
11a8cae074e0 7140224 package downloaded messages displayed twice for each zone
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2593
diff changeset
   915
                # Verify that packages can be updated using temporary origins.
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   916
                self.pkg("update --stage=plan -g {0} -g {1}".format(
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   917
                    self.incorp_arc, self.quux_arc))
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   918
                self.pkg("update --stage=prepare -g {0} -g {1}".format(
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   919
                    self.incorp_arc, self.quux_arc))
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   920
                self.pkg("update --stage=execute -g {0} -g {1}".format(
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   921
                    self.incorp_arc, self.quux_arc))
2690
11a8cae074e0 7140224 package downloaded messages displayed twice for each zone
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2593
diff changeset
   922
                self.pkg("list [email protected] [email protected]")
11a8cae074e0 7140224 package downloaded messages displayed twice for each zone
Edward Pilatowicz <edward.pilatowicz@oracle.com>
parents: 2593
diff changeset
   923
2712
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
   924
        def test_06_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: 2701
diff changeset
   925
                """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: 2701
diff changeset
   926
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
   927
                self.image_create()
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
   928
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   929
                self.pkg("info -g {0} --license licensed".format(self.licensed_rurl))
2712
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
   930
                self.assertEqual("tmp/LICENSE2\n", self.output)
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   931
                self.pkg("info -g {0} --license [email protected]".format(
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   932
                    self.licensed_rurl))
2712
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
   933
                self.assertEqual("tmp/LICENSE\n", self.output)
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
   934
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   935
                self.pkg("install -g {0} --licenses [email protected]".format(
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   936
                    self.licensed_rurl))
2712
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
   937
                self.assert_("tmp/LICENSE" 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: 2701
diff changeset
   938
                    "tmp/LICENSE to be in the output of the install. Output "
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   939
                    "was:\n{0}".format(self.output))
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   940
                self.pkg("info -g {0} --license licensed".format(self.licensed_rurl))
2712
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
   941
                self.assertEqual("tmp/LICENSE2\n", self.output)
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   942
                self.pkg("info -g {0} --license [email protected]".format(
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   943
                    self.licensed_rurl))
2712
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
   944
                self.assertEqual("tmp/LICENSE2\n", self.output)
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
   945
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   946
                self.pkg("update -g {0} --licenses [email protected]".format(
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   947
                    self.licensed_rurl))
2712
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
   948
                self.assert_("tmp/LICENSE2" 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: 2701
diff changeset
   949
                    "tmp/LICENSE2 to be in the output of the install. Output "
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   950
                    "was:\n{0}".format(self.output))
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   951
                self.pkg("info -g {0} --license licensed".format(self.licensed_rurl))
2712
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
   952
                self.assertEqual("tmp/LICENSE2\n", self.output)
3158
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   953
                self.pkg("info -g {0} --license [email protected]".format(
58c9c2c21e67 20177033 change string formatting for python 3 migration
Yiteng Zhang <yiteng.zhang@oracle.com>
parents: 3119
diff changeset
   954
                    self.licensed_rurl))
2712
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
   955
                self.assertEqual("tmp/LICENSE\n", self.output)
d5ec8c11512a 7177231 displayed license is always for installed copy if license file is present
Brock Pytlik <brock.pytlik@oracle.com>
parents: 2701
diff changeset
   956
2219
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   957
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   958
if __name__ == "__main__":
60ad60f7592c 2152 standalone package support needed (on-disk format)
Shawn Walker <shawn.walker@oracle.com>
parents:
diff changeset
   959
        unittest.main()