src/tests/cli/t_api_list.py
author Dan Price <dp@eng.sun.com>
Thu, 17 Dec 2009 16:20:13 -0800
changeset 1603 84bd53597209
parent 1538 78ac66abc186
child 1618 04f7471c9e72
permissions -rw-r--r--
13019 DeprecationWarnings seen after python 2.6 migration
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1537
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
     1
#!/usr/bin/python
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
     2
#
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
     3
# CDDL HEADER START
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
     4
#
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
     8
#
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    12
# and limitations under the License.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    13
#
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    19
#
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    20
# CDDL HEADER END
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    21
#
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    22
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    23
#
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    24
# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    25
# Use is subject to license terms.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    26
#
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    27
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    28
import testutils
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    29
if __name__ == "__main__":
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    30
        testutils.setup_environment("../../../proto")
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    31
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    32
import calendar
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    33
import difflib
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    34
import os
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    35
import platform
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    36
import pprint
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    37
import re
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    38
import shutil
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    39
import simplejson as json
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    40
import unittest
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    41
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    42
import pkg.client.api as api
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    43
import pkg.client.api_errors as api_errors
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    44
import pkg.client.progress as progress
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    45
import pkg.fmri as fmri
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    46
import pkg.misc as misc
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    47
import pkg.version as version
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    48
1603
84bd53597209 13019 DeprecationWarnings seen after python 2.6 migration
Dan Price <dp@eng.sun.com>
parents: 1538
diff changeset
    49
API_VERSION = 28
1537
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    50
PKG_CLIENT_NAME = "pkg"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    51
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    52
class TestApiList(testutils.ManyDepotTestCase):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    53
        # Only start/stop the depot once (instead of for every test)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    54
        persistent_depot = True
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    55
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    56
        packages = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    57
            "apple@1,5.11-0",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    58
            "[email protected],5.11-0",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    59
            "[email protected],5.11-0",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    60
            "[email protected],5.11-0",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    61
            "[email protected],5.11-0",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    62
            "[email protected],5.11-0",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    63
            "[email protected],5.11-1",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    64
            "bat/[email protected],5.11-0",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    65
            "[email protected]",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    66
            "[email protected]",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    67
            "[email protected]",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    68
            "[email protected]",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    69
            "[email protected]",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    70
            "[email protected]",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    71
            "[email protected]",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    72
            "[email protected]",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    73
            "[email protected]",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    74
            "[email protected]",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    75
            "[email protected]",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    76
        ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    77
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    78
        @staticmethod
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    79
        def __tuple_order(a, b):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    80
                apub, astem, aver = a
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    81
                bpub, bstem, bver = b
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    82
                rval = cmp(astem, bstem)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    83
                if rval != 0:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    84
                        return rval
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    85
                rval = cmp(apub, bpub)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    86
                if rval != 0:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    87
                        return rval
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    88
                aver = version.Version(aver, "5.11")
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    89
                bver = version.Version(bver, "5.11")
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    90
                return cmp(aver, bver) * -1
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    91
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    92
        @staticmethod
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    93
        def __get_pkg_arch(stem, ver):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    94
                # Attempt to determine current arch and opposite arch.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    95
                # This is so that the tests will see the set of packages
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    96
                # they expect to be omitted.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    97
                parch = platform.processor()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    98
                if parch == "i386":
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
    99
                        oparch = "sparc"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   100
                else:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   101
                        oparch = "i386"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   102
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   103
                if stem == "apple":
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   104
                        return [parch]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   105
                elif stem in ("entire", "bat/bar", "obsolete"):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   106
                        return
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   107
                elif stem in ("corge", "grault", "qux", "quux"):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   108
                        return [parch, oparch]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   109
                return [oparch]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   110
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   111
        @staticmethod
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   112
        def __get_pkg_cats(stem, ver):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   113
                if stem == "apple":
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   114
                        return [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   115
                            "fruit",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   116
                            "org.opensolaris.category.2008:"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   117
                            "Applications/Sound and Video"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   118
                        ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   119
                elif stem == "bat/bar":
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   120
                        return [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   121
                            "food",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   122
                            "org.opensolaris.category.2008:"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   123
                            "Development/Python"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   124
                        ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   125
                return []
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   126
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   127
        @staticmethod
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   128
        def __get_pkg_summ_desc(stem, ver):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   129
                summ = "Summ. is %s %s" % (stem, ver)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   130
                desc = "Desc. is %s %s" % (stem, ver)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   131
                return summ, desc
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   132
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   133
        def __get_pkg_states(self, pub, stem, ver, installed=False):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   134
                states = [api.PackageInfo.KNOWN]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   135
                if installed:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   136
                        states.append(api.PackageInfo.INSTALLED)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   137
                if stem == "apple":
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   138
                        # Compare with newest version entry for this stem.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   139
                        if ver != str(self.dlist1[6].version):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   140
                                states.append(api.PackageInfo.UPGRADABLE)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   141
                elif stem == "baz":
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   142
                        # Compare with newest version entry for this stem.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   143
                        if ver != str(self.dlist1[10].version):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   144
                                states.append(api.PackageInfo.UPGRADABLE)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   145
                elif stem == "corge":
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   146
                        # Compare with newest version entry for this stem.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   147
                        nver = str(self.dlist1[12].version)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   148
                        if ver != nver:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   149
                                states.append(api.PackageInfo.UPGRADABLE)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   150
                        if ver == nver:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   151
                                states.append(api.PackageInfo.RENAMED)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   152
                elif stem == "obsolete":
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   153
                        states.append(api.PackageInfo.OBSOLETE)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   154
                elif stem == "qux":
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   155
                        # Compare with newest version entry for this stem.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   156
                        nver = str(self.dlist1[18].version)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   157
                        if ver != nver:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   158
                                states.append(api.PackageInfo.UPGRADABLE)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   159
                        if ver == nver:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   160
                                states.append(api.PackageInfo.RENAMED)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   161
                return frozenset(states)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   162
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   163
        def __get_pub_entry(self, pub, idx, name, ver):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   164
                if pub == "test1":
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   165
                        l = self.dlist1
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   166
                else:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   167
                        l = self.dlist2
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   168
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   169
                f = l[idx]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   170
                self.assertEqual(f.pkg_name, name)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   171
                v = str(f.version)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   172
                try:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   173
                        self.assertTrue(v.startswith(ver + ":"))
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   174
                except AssertionError:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   175
                        self.debug("\n%s does not start with %s:" % (v, ver))
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   176
                        raise
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   177
                return f, v
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   178
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   179
        def __get_exp_pub_entry(self, pub, idx, name, ver, installed=False):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   180
                f, v = self.__get_pub_entry(pub, idx, name, ver)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   181
                return self.__get_expected_entry(pub, name, v,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   182
                    installed=installed)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   183
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   184
        def setUp(self):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   185
                testutils.ManyDepotTestCase.setUp(self, ["test1", "test2",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   186
                    "test3"])
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   187
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   188
                pkg_data = ""
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   189
                for p in self.packages:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   190
                        pkg_data += p
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   191
                        stem, ver = p.split("@")
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   192
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   193
                        # XXX version should not require 5.11
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   194
                        sver = version.Version(ver, "5.11")
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   195
                        sver = str(sver).split(":", 1)[0]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   196
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   197
                        summ, desc = self.__get_pkg_summ_desc(stem, sver)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   198
                        pkg_data += """
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   199
open %(stem)s@%(ver)s
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   200
add set name=pkg.summary value="%(summ)s"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   201
add set name=pkg.description value="%(desc)s"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   202
""" % { "stem": stem, "ver": ver, "summ": summ, "desc": desc }
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   203
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   204
                        cats = self.__get_pkg_cats(stem, sver)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   205
                        if cats:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   206
                                pkg_data += "add set name=info.classification"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   207
                                for cat in cats:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   208
                                        pkg_data += ' value="%s"' % cat
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   209
                                pkg_data += "\n"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   210
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   211
                        arch = self.__get_pkg_arch(stem, sver)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   212
                        if arch:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   213
                                adata = "value="
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   214
                                adata += " value=".join(arch)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   215
                                pkg_data += "add set name=variant.arch " \
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   216
                                    "%s\n" % adata
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   217
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   218
                        if stem == "corge" and sver.startswith("1.0"):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   219
                                pkg_data += "add set name=pkg.renamed " \
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   220
                                    "value=true\n"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   221
                                pkg_data += "add depend type=require " \
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   222
                                    "fmri=grault\n"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   223
                        elif stem == "entire":
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   224
                                pkg_data += "add depend type=incorporate " \
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   225
                                    "[email protected]\n"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   226
                                pkg_data += "add depend type=incorporate " \
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   227
                                    "[email protected]\n"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   228
                                pkg_data += "add depend type=incorporate " \
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   229
                                    "[email protected]\n"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   230
                        elif stem == "obsolete":
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   231
                                pkg_data += "add set name=pkg.obsolete " \
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   232
                                    "value=true\n"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   233
                        elif stem == "qux" and sver.startswith("1.0"):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   234
                                pkg_data += "add set name=pkg.renamed " \
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   235
                                    "value=true\n"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   236
                                pkg_data += "add depend type=require " \
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   237
                                    "fmri=quux\n"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   238
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   239
                        pkg_data += "close\n"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   240
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   241
                durl1 = self.dcs[1].get_depot_url()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   242
                plist = self.pkgsend_bulk(durl1, pkg_data)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   243
                durl2 = self.dcs[2].get_depot_url()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   244
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   245
                # Ensure that the second repo's packages have exactly the same
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   246
                # timestamps as those in the first ... by copying the repo over.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   247
                self.dcs[2].stop()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   248
                d1dir = self.dcs[1].get_repodir()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   249
                d2dir = self.dcs[2].get_repodir()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   250
                self.copy_repository(d1dir, "test1", d2dir, "test2")
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   251
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   252
                self.dlist1 = []
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   253
                self.dlist2 = []
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   254
                for e in plist:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   255
                        # Unique FMRI object is needed for each list.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   256
                        f = fmri.PkgFmri(str(e))
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   257
                        self.dlist1.append(f)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   258
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   259
                        f = fmri.PkgFmri(str(e))
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   260
                        f.set_publisher("test2")
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   261
                        self.dlist2.append(f)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   262
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   263
                self.dlist1.sort()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   264
                self.dlist2.sort()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   265
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   266
                # The new repository won't have a catalog, so set the depot
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   267
                # server to rebuild it.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   268
                self.dcs[2].set_rebuild()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   269
                self.dcs[2].start()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   270
                self.dcs[2].set_norebuild()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   271
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   272
                # The third repository should remain empty and not be
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   273
                # published to.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   274
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   275
                # Next, create the image and configure publishers.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   276
                self.image_create(durl1, prefix="test1")
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   277
                self.pkg("set-publisher -g " + durl2 + " test2")
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   278
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   279
        def assertPrettyEqual(self, actual, expected):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   280
                if actual == expected:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   281
                        return
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   282
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   283
                actual = pprint.pformat(actual, indent=2)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   284
                expected = pprint.pformat(expected, indent=2)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   285
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   286
                self.assertEqual(expected, actual,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   287
                    "Actual output differed from expected output.\n" +
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   288
                    "\n".join(difflib.unified_diff(
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   289
                        expected.splitlines(), actual.splitlines(),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   290
                        "Expected output", "Actual output", lineterm="")))
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   291
                raise AssertionError(output)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   292
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   293
        def __get_expected_entry(self, pub, stem, ver, installed=False):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   294
                states = self.__get_pkg_states(pub, stem, ver,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   295
                    installed=installed)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   296
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   297
                sver = ver.split(":", 1)[0]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   298
                raw_cats = self.__get_pkg_cats(stem, sver)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   299
                summ, desc = self.__get_pkg_summ_desc(stem, sver)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   300
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   301
                scheme = None
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   302
                cat = None
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   303
                pcats = []
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   304
                for e in raw_cats:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   305
                        if e and ":" in e:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   306
                                scheme, cat = e.split(":", 1)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   307
                        else:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   308
                                scheme = ""
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   309
                                cat = e
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   310
                        pcats.append((scheme, cat))
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   311
                return ((pub, stem, ver), summ, pcats, states)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   312
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   313
        def __get_expected(self, pkg_list, cats=None, pubs=misc.EmptyI,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   314
            variants=False):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   315
                nlist = {}
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   316
                newest = pkg_list == api.ImageInterface.LIST_NEWEST
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   317
                if newest:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   318
                        # Get the newest FMRI for each unique package stem on
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   319
                        # a per-publisher basis.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   320
                        for plist in (self.dlist1, self.dlist2):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   321
                                for f in plist:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   322
                                        pstem = f.get_pkg_stem()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   323
                                        if pstem not in nlist:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   324
                                                nlist[pstem] = f
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   325
                                        elif f.version > nlist[pstem]:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   326
                                                nlist[pstem] = f
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   327
                nlist = sorted(nlist.values())
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   328
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   329
                expected = []
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   330
                for plist in (self.dlist1, self.dlist2):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   331
                        for f in plist:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   332
                                pub, stem, ver = f.tuple()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   333
                                ver = str(f.version)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   334
                                if pubs and pub not in pubs:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   335
                                        continue
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   336
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   337
                                sver = ver.split(":", 1)[0]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   338
                                arch = self.__get_pkg_arch(stem, sver)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   339
                                parch = platform.processor()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   340
                                if not variants and arch and parch not in arch:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   341
                                        continue
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   342
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   343
                                if newest and f not in nlist:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   344
                                        continue
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   345
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   346
                                t, summ, pcats, states = \
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   347
                                    self.__get_expected_entry(pub, stem, ver)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   348
                                if cats is not None:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   349
                                        if not cats:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   350
                                                if pcats:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   351
                                                        # Want packages with no
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   352
                                                        # category.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   353
                                                        continue
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   354
                                        elif not \
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   355
                                            [sc for sc in cats if sc in pcats]:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   356
                                                # Doesn't match specified
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   357
                                                # categories.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   358
                                                continue
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   359
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   360
                                expected.append((t, summ, pcats, states))
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   361
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   362
                def pkg_list_order(a, b):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   363
                        at = a[0]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   364
                        bt = b[0]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   365
                        return self.__tuple_order(at, bt)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   366
                expected.sort(cmp=pkg_list_order)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   367
                return expected
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   368
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   369
        def __get_returned(self, pkg_list, api_obj=None, cats=None,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   370
            num_expected=None, patterns=misc.EmptyI,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   371
            pubs=misc.EmptyI, variants=False):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   372
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   373
                if not api_obj:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   374
                        progresstracker = progress.NullProgressTracker()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   375
                        api_obj = api.ImageInterface(self.get_img_path(),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   376
                            API_VERSION, progresstracker, lambda x: False,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   377
                            PKG_CLIENT_NAME)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   378
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   379
                # Set of states exposed by the API.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   380
                exp_states = set([api.PackageInfo.FROZEN,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   381
                    api.PackageInfo.INCORPORATED, api.PackageInfo.EXCLUDES,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   382
                    api.PackageInfo.KNOWN, api.PackageInfo.INSTALLED,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   383
                    api.PackageInfo.UPGRADABLE, api.PackageInfo.OBSOLETE,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   384
                    api.PackageInfo.RENAMED])
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   385
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   386
                # Get ordered list of all packages.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   387
                returned = []
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   388
                for entry in api_obj.get_pkg_list(pkg_list, cats=cats,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   389
                    patterns=patterns, pubs=pubs, variants=variants):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   390
                        (pub, stem, ver), summ, pcats, raw_states = entry
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   391
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   392
                        sver = ver.split(":", 1)[0]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   393
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   394
                        # Eliminate states not exposed by the api.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   395
                        states = raw_states.intersection(exp_states)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   396
                        returned.append(((pub, stem, ver), summ, pcats, states))
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   397
                return returned
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   398
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   399
        def __test_list(self, pkg_list, api_obj=None,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   400
            cats=None, num_expected=None, pubs=misc.EmptyI,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   401
            variants=False):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   402
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   403
                # Get package list.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   404
                returned = self.__get_returned(pkg_list, api_obj=api_obj,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   405
                    cats=cats, pubs=pubs, variants=variants)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   406
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   407
                # Now generate expected list.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   408
                expected = self.__get_expected(pkg_list, cats=cats,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   409
                    pubs=pubs, variants=variants)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   410
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   411
                # Compare returned and expected.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   412
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   413
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   414
                if num_expected is not None:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   415
                        self.assertEqual(len(returned), num_expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   416
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   417
        def test_list_01_full(self):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   418
                """Verify the sort order and content of a full list and
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   419
                combinations thereof."""
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   420
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   421
                progresstracker = progress.NullProgressTracker()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   422
                api_obj = api.ImageInterface(self.get_img_path(), API_VERSION,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   423
                    progresstracker, lambda x: False, PKG_CLIENT_NAME)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   424
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   425
                # First check all variants case.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   426
                returned = self.__get_returned(api_obj.LIST_ALL,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   427
                    api_obj=api_obj, variants=True)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   428
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   429
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   430
                    self.__get_exp_pub_entry("test1", 6, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   431
                        "1.2.1,5.11-1"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   432
                    self.__get_exp_pub_entry("test1", 5, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   433
                        "1.2.1,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   434
                    self.__get_exp_pub_entry("test1", 4, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   435
                        "1.2.1,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   436
                    self.__get_exp_pub_entry("test1", 3, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   437
                        "1.2.0,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   438
                    self.__get_exp_pub_entry("test1", 2, "apple", "1.1,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   439
                    self.__get_exp_pub_entry("test1", 1, "apple", "1.0,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   440
                    self.__get_exp_pub_entry("test1", 0, "apple", "1,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   441
                    self.__get_exp_pub_entry("test2", 6, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   442
                        "1.2.1,5.11-1"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   443
                    self.__get_exp_pub_entry("test2", 5, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   444
                        "1.2.1,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   445
                    self.__get_exp_pub_entry("test2", 4, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   446
                        "1.2.1,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   447
                    self.__get_exp_pub_entry("test2", 3, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   448
                        "1.2.0,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   449
                    self.__get_exp_pub_entry("test2", 2, "apple", "1.1,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   450
                    self.__get_exp_pub_entry("test2", 1, "apple", "1.0,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   451
                    self.__get_exp_pub_entry("test2", 0, "apple", "1,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   452
                    self.__get_exp_pub_entry("test1", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   453
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   454
                    self.__get_exp_pub_entry("test2", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   455
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   456
                    self.__get_exp_pub_entry("test1", 10, "baz", "1.3,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   457
                    self.__get_exp_pub_entry("test1", 9, "baz", "1.0.1,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   458
                    self.__get_exp_pub_entry("test1", 8, "baz", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   459
                    self.__get_exp_pub_entry("test2", 10, "baz", "1.3,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   460
                    self.__get_exp_pub_entry("test2", 9, "baz", "1.0.1,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   461
                    self.__get_exp_pub_entry("test2", 8, "baz", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   462
                    self.__get_exp_pub_entry("test1", 12, "corge", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   463
                    self.__get_exp_pub_entry("test1", 11, "corge", "0.9,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   464
                    self.__get_exp_pub_entry("test2", 12, "corge", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   465
                    self.__get_exp_pub_entry("test2", 11, "corge", "0.9,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   466
                    self.__get_exp_pub_entry("test1", 13, "entire", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   467
                    self.__get_exp_pub_entry("test2", 13, "entire", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   468
                    self.__get_exp_pub_entry("test1", 14, "grault", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   469
                    self.__get_exp_pub_entry("test2", 14, "grault", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   470
                    self.__get_exp_pub_entry("test1", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   471
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   472
                    self.__get_exp_pub_entry("test2", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   473
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   474
                    self.__get_exp_pub_entry("test1", 16, "quux", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   475
                    self.__get_exp_pub_entry("test2", 16, "quux", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   476
                    self.__get_exp_pub_entry("test1", 18, "qux", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   477
                    self.__get_exp_pub_entry("test1", 17, "qux", "0.9,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   478
                    self.__get_exp_pub_entry("test2", 18, "qux", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   479
                    self.__get_exp_pub_entry("test2", 17, "qux", "0.9,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   480
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   481
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   482
                self.assertEqual(len(returned), 38)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   483
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   484
                # Next, check no variants case (which has to be done
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   485
                # programatically to deal with unit test running on
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   486
                # different platforms).
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   487
                self.__test_list(api.ImageInterface.LIST_ALL, api_obj=api_obj,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   488
                    num_expected=32, variants=False)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   489
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   490
        def test_list_02_newest(self):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   491
                """Verify the sort order and content of a list excluding
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   492
                packages not for the current image variant, and all but
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   493
                the newest versions of each package for each publisher."""
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   494
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   495
                self.__test_list(api.ImageInterface.LIST_NEWEST,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   496
                    num_expected=16, variants=False)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   497
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   498
        def test_list_03_cats(self):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   499
                """Verify the sort order and content of a list excluding
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   500
                packages not for the current image variant, and packages
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   501
                that don't match the specified scheme, category
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   502
                combinations."""
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   503
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   504
                combos = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   505
                    ([
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   506
                        ("", "fruit"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   507
                        ("org.opensolaris.category.2008",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   508
                        "Applications/Sound and Video"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   509
                        ("", "food"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   510
                        ("org.opensolaris.category.2008",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   511
                        "Development/Python")
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   512
                    ], 16),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   513
                    ([
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   514
                        ("org.opensolaris.category.2008",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   515
                        "Development/Python")
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   516
                    ], 2),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   517
                    ([
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   518
                        ("org.opensolaris.category.2008",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   519
                        "Applications/Sound and Video"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   520
                        ("", "food")
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   521
                    ], 16),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   522
                    ([
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   523
                        ("", "fruit")
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   524
                    ], 14),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   525
                    ([
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   526
                        ("", "food")
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   527
                    ], 2),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   528
                    ([], 16) # Only packages with no category assigned.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   529
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   530
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   531
                for combo, expected in combos:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   532
                        self.__test_list(api.ImageInterface.LIST_ALL,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   533
                            cats=combo, num_expected=expected, variants=False)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   534
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   535
        def test_list_04_pubs(self):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   536
                """Verify the sort order and content of list filtered using
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   537
                various publisher and variant combinations."""
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   538
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   539
                combos = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   540
                    (["test1", "test2"], 32, False),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   541
                    (["test1", "test2"], 38, True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   542
                    (["test2"], 16, False),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   543
                    (["test2"], 19, True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   544
                    (["test1"], 16, False),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   545
                    (["test1"], 19, True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   546
                    (["test3"], 0, False),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   547
                    (["test3"], 0, True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   548
                    ([], 32, False),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   549
                    ([], 38, True)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   550
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   551
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   552
                for combo, expected, variants in combos:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   553
                        self.__test_list(api.ImageInterface.LIST_ALL,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   554
                            num_expected=expected, pubs=combo,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   555
                            variants=variants)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   556
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   557
        def test_list_05_installed(self):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   558
                """Verify the sort order and content of a list containing
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   559
                only installed packages and combinations thereof."""
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   560
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   561
                progresstracker = progress.NullProgressTracker()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   562
                api_obj = api.ImageInterface(self.get_img_path(), API_VERSION,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   563
                    progresstracker, lambda x: False, PKG_CLIENT_NAME)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   564
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   565
                # Verify no installed packages case.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   566
                returned = self.__get_returned(api_obj.LIST_INSTALLED,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   567
                    api_obj=api_obj)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   568
                self.assertEqual(len(returned), 0)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   569
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   570
                # Test results after installing packages and only listing the
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   571
                # installed packages.  Note that the 'obsolete' package here
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   572
                # won't be installed since it has no dependencies.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   573
                af = self.__get_pub_entry("test1", 3, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   574
                    "1.2.0,5.11-0")[0]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   575
                api_obj.plan_install(["entire", af.get_fmri(), "corge",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   576
                    "obsolete", "qux"])
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   577
                api_obj.prepare()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   578
                api_obj.execute_plan()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   579
                api_obj.reset()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   580
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   581
                # Verify the results for LIST_INSTALLED.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   582
                returned = self.__get_returned(api_obj.LIST_INSTALLED,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   583
                    api_obj=api_obj)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   584
                self.assertEqual(len(returned), 6)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   585
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   586
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   587
                    self.__get_exp_pub_entry("test1", 3, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   588
                        "1.2.0,5.11-0", installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   589
                    self.__get_exp_pub_entry("test1", 12, "corge", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   590
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   591
                    self.__get_exp_pub_entry("test1", 13, "entire", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   592
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   593
                    self.__get_exp_pub_entry("test1", 14, "grault", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   594
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   595
                    self.__get_exp_pub_entry("test1", 16, "quux", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   596
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   597
                    self.__get_exp_pub_entry("test1", 18, "qux", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   598
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   599
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   600
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   601
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   602
                # Verify the results for LIST_INSTALLED_NEWEST.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   603
                returned = self.__get_returned(api_obj.LIST_INSTALLED_NEWEST,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   604
                    api_obj=api_obj)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   605
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   606
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   607
                    self.__get_exp_pub_entry("test1", 3, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   608
                        "1.2.0,5.11-0", installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   609
                    self.__get_exp_pub_entry("test1", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   610
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   611
                    self.__get_exp_pub_entry("test2", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   612
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   613
                    self.__get_exp_pub_entry("test1", 12, "corge", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   614
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   615
                    self.__get_exp_pub_entry("test1", 13, "entire", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   616
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   617
                    self.__get_exp_pub_entry("test1", 14, "grault", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   618
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   619
                    self.__get_exp_pub_entry("test1", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   620
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   621
                    self.__get_exp_pub_entry("test2", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   622
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   623
                    self.__get_exp_pub_entry("test1", 16, "quux", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   624
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   625
                    self.__get_exp_pub_entry("test1", 18, "qux", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   626
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   627
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   628
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   629
                self.assertEqual(len(returned), 10)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   630
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   631
                # Re-test, including variants.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   632
                returned = self.__get_returned(api_obj.LIST_INSTALLED_NEWEST,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   633
                    api_obj=api_obj, variants=True)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   634
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   635
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   636
                    self.__get_exp_pub_entry("test1", 3, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   637
                        "1.2.0,5.11-0", installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   638
                    self.__get_exp_pub_entry("test1", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   639
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   640
                    self.__get_exp_pub_entry("test2", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   641
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   642
                    self.__get_exp_pub_entry("test1", 10, "baz", "1.3,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   643
                    self.__get_exp_pub_entry("test2", 10, "baz", "1.3,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   644
                    self.__get_exp_pub_entry("test1", 12, "corge", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   645
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   646
                    self.__get_exp_pub_entry("test1", 13, "entire", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   647
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   648
                    self.__get_exp_pub_entry("test1", 14, "grault", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   649
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   650
                    self.__get_exp_pub_entry("test1", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   651
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   652
                    self.__get_exp_pub_entry("test2", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   653
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   654
                    self.__get_exp_pub_entry("test1", 16, "quux", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   655
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   656
                    self.__get_exp_pub_entry("test1", 18, "qux", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   657
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   658
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   659
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   660
                self.assertEqual(len(returned), 12)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   661
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   662
                # Verify results of LIST_INSTALLED_NEWEST when not including
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   663
                # the publisher of installed packages.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   664
                returned = self.__get_returned(api_obj.LIST_INSTALLED_NEWEST,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   665
                    api_obj=api_obj, pubs=["test2"])
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   666
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   667
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   668
                    self.__get_exp_pub_entry("test2", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   669
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   670
                    self.__get_exp_pub_entry("test2", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   671
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   672
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   673
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   674
                self.assertEqual(len(returned), 2)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   675
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   676
                # Verify the results for LIST_INSTALLED_NEWEST after
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   677
                # uninstalling 'qux'.  'qux' should not be listed as
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   678
                # its replacement is incorporated.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   679
                api_obj.plan_uninstall(["qux"], False)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   680
                api_obj.prepare()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   681
                api_obj.execute_plan()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   682
                api_obj.reset()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   683
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   684
                returned = self.__get_returned(api_obj.LIST_INSTALLED_NEWEST,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   685
                    api_obj=api_obj)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   686
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   687
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   688
                    self.__get_exp_pub_entry("test1", 3, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   689
                        "1.2.0,5.11-0", installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   690
                    self.__get_exp_pub_entry("test1", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   691
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   692
                    self.__get_exp_pub_entry("test2", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   693
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   694
                    self.__get_exp_pub_entry("test1", 12, "corge", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   695
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   696
                    self.__get_exp_pub_entry("test1", 13, "entire", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   697
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   698
                    self.__get_exp_pub_entry("test1", 14, "grault", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   699
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   700
                    self.__get_exp_pub_entry("test1", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   701
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   702
                    self.__get_exp_pub_entry("test2", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   703
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   704
                    self.__get_exp_pub_entry("test1", 16, "quux", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   705
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   706
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   707
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   708
                self.assertEqual(len(returned), 9)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   709
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   710
                # Verify the results for LIST_INSTALLED_NEWEST after
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   711
                # uninstalling 'quux' and 'qux'.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   712
                api_obj.plan_uninstall(["quux"], False)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   713
                api_obj.prepare()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   714
                api_obj.execute_plan()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   715
                api_obj.reset()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   716
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   717
                returned = self.__get_returned(api_obj.LIST_INSTALLED_NEWEST,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   718
                    api_obj=api_obj)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   719
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   720
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   721
                    self.__get_exp_pub_entry("test1", 3, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   722
                        "1.2.0,5.11-0", installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   723
                    self.__get_exp_pub_entry("test1", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   724
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   725
                    self.__get_exp_pub_entry("test2", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   726
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   727
                    self.__get_exp_pub_entry("test1", 12, "corge", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   728
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   729
                    self.__get_exp_pub_entry("test1", 13, "entire", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   730
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   731
                    self.__get_exp_pub_entry("test1", 14, "grault", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   732
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   733
                    self.__get_exp_pub_entry("test1", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   734
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   735
                    self.__get_exp_pub_entry("test2", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   736
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   737
                    self.__get_exp_pub_entry("test1", 16, "quux", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   738
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   739
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   740
                self.assertEqual(len(returned), 9)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   741
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   742
                # Verify the results for LIST_INSTALLED_NEWEST after
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   743
                # all packages have been uninstalled.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   744
                api_obj.plan_uninstall(["entire", "corge", "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   745
                    "grault"], False)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   746
                api_obj.prepare()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   747
                api_obj.execute_plan()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   748
                api_obj.reset()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   749
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   750
                returned = self.__get_returned(api_obj.LIST_INSTALLED_NEWEST,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   751
                    api_obj=api_obj)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   752
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   753
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   754
                    self.__get_exp_pub_entry("test1", 6, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   755
                        "1.2.1,5.11-1"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   756
                    self.__get_exp_pub_entry("test2", 6, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   757
                        "1.2.1,5.11-1"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   758
                    self.__get_exp_pub_entry("test1", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   759
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   760
                    self.__get_exp_pub_entry("test2", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   761
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   762
                    self.__get_exp_pub_entry("test1", 12, "corge", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   763
                    self.__get_exp_pub_entry("test2", 12, "corge", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   764
                    self.__get_exp_pub_entry("test1", 13, "entire", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   765
                    self.__get_exp_pub_entry("test2", 13, "entire", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   766
                    self.__get_exp_pub_entry("test1", 14, "grault", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   767
                    self.__get_exp_pub_entry("test2", 14, "grault", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   768
                    self.__get_exp_pub_entry("test1", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   769
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   770
                    self.__get_exp_pub_entry("test2", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   771
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   772
                    self.__get_exp_pub_entry("test1", 16, "quux", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   773
                    self.__get_exp_pub_entry("test2", 16, "quux", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   774
                    self.__get_exp_pub_entry("test1", 18, "qux", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   775
                    self.__get_exp_pub_entry("test2", 18, "qux", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   776
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   777
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   778
                self.assertEqual(len(returned), 16)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   779
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   780
                # Re-test, including variants.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   781
                returned = self.__get_returned(api_obj.LIST_INSTALLED_NEWEST,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   782
                    api_obj=api_obj, variants=True)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   783
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   784
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   785
                    self.__get_exp_pub_entry("test1", 6, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   786
                        "1.2.1,5.11-1"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   787
                    self.__get_exp_pub_entry("test2", 6, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   788
                        "1.2.1,5.11-1"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   789
                    self.__get_exp_pub_entry("test1", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   790
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   791
                    self.__get_exp_pub_entry("test2", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   792
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   793
                    self.__get_exp_pub_entry("test1", 10, "baz", "1.3,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   794
                    self.__get_exp_pub_entry("test2", 10, "baz", "1.3,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   795
                    self.__get_exp_pub_entry("test1", 12, "corge", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   796
                    self.__get_exp_pub_entry("test2", 12, "corge", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   797
                    self.__get_exp_pub_entry("test1", 13, "entire",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   798
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   799
                    self.__get_exp_pub_entry("test2", 13, "entire", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   800
                    self.__get_exp_pub_entry("test1", 14, "grault", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   801
                    self.__get_exp_pub_entry("test2", 14, "grault", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   802
                    self.__get_exp_pub_entry("test1", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   803
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   804
                    self.__get_exp_pub_entry("test2", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   805
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   806
                    self.__get_exp_pub_entry("test1", 16, "quux", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   807
                    self.__get_exp_pub_entry("test2", 16, "quux", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   808
                    self.__get_exp_pub_entry("test1", 18, "qux", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   809
                    self.__get_exp_pub_entry("test2", 18, "qux", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   810
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   811
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   812
                self.assertEqual(len(returned), 18)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   813
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   814
                # Test results after installing packages and only listing the
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   815
                # installed packages.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   816
                af = self.__get_pub_entry("test1", 1, "apple", "1.0,5.11-0")[0]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   817
                api_obj.plan_install([af.get_fmri(), "[email protected]", "[email protected]"])
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   818
                api_obj.prepare()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   819
                api_obj.execute_plan()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   820
                api_obj.reset()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   821
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   822
                # Verify the results for LIST_INSTALLED and
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   823
                # LIST_INSTALLED_NEWEST when future versions
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   824
                # are renamed and current versions are not
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   825
                # incorporated.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   826
                returned = self.__get_returned(api_obj.LIST_INSTALLED,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   827
                    api_obj=api_obj)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   828
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   829
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   830
                    self.__get_exp_pub_entry("test1", 1, "apple", "1.0,5.11-0",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   831
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   832
                    self.__get_exp_pub_entry("test1", 11, "corge", "0.9,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   833
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   834
                    self.__get_exp_pub_entry("test1", 17, "qux", "0.9,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   835
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   836
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   837
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   838
                self.assertEqual(len(returned), 3)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   839
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   840
                returned = self.__get_returned(api_obj.LIST_INSTALLED_NEWEST,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   841
                    api_obj=api_obj)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   842
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   843
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   844
                    self.__get_exp_pub_entry("test1", 1, "apple", "1.0,5.11-0",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   845
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   846
                    self.__get_exp_pub_entry("test1", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   847
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   848
                    self.__get_exp_pub_entry("test2", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   849
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   850
                    self.__get_exp_pub_entry("test1", 11, "corge", "0.9,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   851
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   852
                    self.__get_exp_pub_entry("test1", 13, "entire", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   853
                    self.__get_exp_pub_entry("test2", 13, "entire", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   854
                    self.__get_exp_pub_entry("test1", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   855
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   856
                    self.__get_exp_pub_entry("test2", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   857
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   858
                    self.__get_exp_pub_entry("test1", 17, "qux", "0.9,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   859
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   860
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   861
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   862
                self.assertEqual(len(returned), 9)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   863
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   864
                # Remove corge, install grault, retest for
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   865
                # LIST_INSTALLED_NEWEST.  corge, grault, qux, and
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   866
                # quux should be listed since none of them are
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   867
                # listed in an installed incorporation.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   868
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   869
                # XXX due to bug 12898 attempting to install
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   870
                # any more packages after this would result
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   871
                # in quux being installed even when the
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   872
                # requested packages do not have quux as a
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   873
                # dependency.  As such, uninstall all packages
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   874
                # here and then install apple, qux and grault.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   875
                api_obj.plan_uninstall(["*"], False)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   876
                api_obj.prepare()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   877
                api_obj.execute_plan()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   878
                api_obj.reset()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   879
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   880
                af = self.__get_pub_entry("test1", 1, "apple", "1.0,5.11-0")[0]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   881
                api_obj.plan_install([af.get_fmri(), "[email protected]",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   882
                    "pkg://test2/grault"])
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   883
                api_obj.prepare()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   884
                api_obj.execute_plan()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   885
                api_obj.reset()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   886
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   887
                returned = self.__get_returned(api_obj.LIST_INSTALLED_NEWEST,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   888
                    api_obj=api_obj)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   889
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   890
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   891
                    self.__get_exp_pub_entry("test1", 1, "apple", "1.0,5.11-0",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   892
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   893
                    self.__get_exp_pub_entry("test1", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   894
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   895
                    self.__get_exp_pub_entry("test2", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   896
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   897
                    self.__get_exp_pub_entry("test1", 12, "corge", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   898
                    self.__get_exp_pub_entry("test2", 12, "corge", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   899
                    self.__get_exp_pub_entry("test1", 13, "entire", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   900
                    self.__get_exp_pub_entry("test2", 13, "entire", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   901
                    self.__get_exp_pub_entry("test2", 14, "grault", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   902
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   903
                    self.__get_exp_pub_entry("test1", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   904
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   905
                    self.__get_exp_pub_entry("test2", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   906
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   907
                    self.__get_exp_pub_entry("test1", 17, "qux", "0.9,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   908
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   909
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   910
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   911
                self.assertEqual(len(returned), 11)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   912
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   913
                # Now verify that publisher search order determines the entries
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   914
                # that are listed when those entries are part of an installed
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   915
                # incorporation.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   916
                api_obj.plan_uninstall(["*"], False)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   917
                api_obj.prepare()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   918
                api_obj.execute_plan()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   919
                api_obj.reset()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   920
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   921
                api_obj.plan_install(["entire"])
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   922
                api_obj.prepare()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   923
                api_obj.execute_plan()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   924
                api_obj.reset()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   925
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   926
                # In this case, any packages present in an installed
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   927
                # incorporation and that are not installed should be
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   928
                # listed using the highest ranked publisher (test1).
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   929
                # Only apple and quux are incorporated, and build
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   930
                # 0 of apple should be listed here instead of build 1
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   931
                # since the installed incorporation doesn't allow the
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   932
                # build 1 version.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   933
                returned = self.__get_returned(api_obj.LIST_INSTALLED_NEWEST,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   934
                    api_obj=api_obj)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   935
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   936
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   937
                    self.__get_exp_pub_entry("test1", 5, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   938
                        "1.2.1,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   939
                    self.__get_exp_pub_entry("test1", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   940
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   941
                    self.__get_exp_pub_entry("test2", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   942
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   943
                    self.__get_exp_pub_entry("test1", 12, "corge", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   944
                    self.__get_exp_pub_entry("test2", 12, "corge", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   945
                    self.__get_exp_pub_entry("test1", 13, "entire", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   946
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   947
                    self.__get_exp_pub_entry("test1", 14, "grault", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   948
                    self.__get_exp_pub_entry("test2", 14, "grault", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   949
                    self.__get_exp_pub_entry("test1", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   950
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   951
                    self.__get_exp_pub_entry("test2", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   952
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   953
                    self.__get_exp_pub_entry("test1", 16, "quux", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   954
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   955
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   956
                self.assertEqual(len(returned), 11)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   957
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   958
                # Re-test, only including test1's packages.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   959
                returned = self.__get_returned(api_obj.LIST_INSTALLED_NEWEST,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   960
                    api_obj=api_obj, pubs=["test1"])
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   961
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   962
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   963
                    self.__get_exp_pub_entry("test1", 5, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   964
                        "1.2.1,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   965
                    self.__get_exp_pub_entry("test1", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   966
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   967
                    self.__get_exp_pub_entry("test1", 12, "corge", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   968
                    self.__get_exp_pub_entry("test1", 13, "entire", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   969
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   970
                    self.__get_exp_pub_entry("test1", 14, "grault", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   971
                    self.__get_exp_pub_entry("test1", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   972
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   973
                    self.__get_exp_pub_entry("test1", 16, "quux", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   974
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   975
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   976
                self.assertEqual(len(returned), 7)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   977
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   978
                # Re-test, only including test2's packages.  Since none of
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   979
                # the other packages are installed for test1, and they meet
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   980
                # the requirements of the installed incorporations, this is
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   981
                # the expected result.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   982
                returned = self.__get_returned(api_obj.LIST_INSTALLED_NEWEST,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   983
                    api_obj=api_obj, pubs=["test2"])
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   984
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   985
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   986
                    self.__get_exp_pub_entry("test2", 5, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   987
                        "1.2.1,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   988
                    self.__get_exp_pub_entry("test2", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   989
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   990
                    self.__get_exp_pub_entry("test2", 12, "corge", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   991
                    self.__get_exp_pub_entry("test2", 14, "grault", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   992
                    self.__get_exp_pub_entry("test2", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   993
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   994
                    self.__get_exp_pub_entry("test2", 16, "quux", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   995
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   996
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   997
                self.assertEqual(len(returned), 6)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   998
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
   999
                # Change test2 to be ranked higher than test1.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1000
                api_obj.set_pub_search_before("test2", "test1")
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1001
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1002
                # Re-test; test2 should now have its entries listed in place
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1003
                # of test1's for the non-filtered case.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1004
                returned = self.__get_returned(api_obj.LIST_INSTALLED_NEWEST,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1005
                    api_obj=api_obj)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1006
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1007
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1008
                    self.__get_exp_pub_entry("test2", 5, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1009
                        "1.2.1,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1010
                    self.__get_exp_pub_entry("test1", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1011
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1012
                    self.__get_exp_pub_entry("test2", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1013
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1014
                    self.__get_exp_pub_entry("test1", 12, "corge", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1015
                    self.__get_exp_pub_entry("test2", 12, "corge", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1016
                    self.__get_exp_pub_entry("test1", 13, "entire", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1017
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1018
                    self.__get_exp_pub_entry("test1", 14, "grault", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1019
                    self.__get_exp_pub_entry("test2", 14, "grault", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1020
                    self.__get_exp_pub_entry("test1", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1021
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1022
                    self.__get_exp_pub_entry("test2", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1023
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1024
                    self.__get_exp_pub_entry("test2", 16, "quux", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1025
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1026
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1027
                self.assertEqual(len(returned), 11)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1028
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1029
                # Now install one of the incorporated packages and check
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1030
                # that test2 is still listed for the remaining package
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1031
                # for the non-filtered case.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1032
                api_obj.plan_install(["apple"])
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1033
                api_obj.prepare()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1034
                api_obj.execute_plan()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1035
                api_obj.reset()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1036
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1037
                returned = self.__get_returned(api_obj.LIST_INSTALLED_NEWEST,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1038
                    api_obj=api_obj)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1039
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1040
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1041
                    self.__get_exp_pub_entry("test2", 5, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1042
                        "1.2.1,5.11-0", installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1043
                    self.__get_exp_pub_entry("test1", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1044
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1045
                    self.__get_exp_pub_entry("test2", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1046
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1047
                    self.__get_exp_pub_entry("test1", 12, "corge", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1048
                    self.__get_exp_pub_entry("test2", 12, "corge", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1049
                    self.__get_exp_pub_entry("test1", 13, "entire", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1050
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1051
                    self.__get_exp_pub_entry("test1", 14, "grault", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1052
                    self.__get_exp_pub_entry("test2", 14, "grault", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1053
                    self.__get_exp_pub_entry("test1", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1054
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1055
                    self.__get_exp_pub_entry("test2", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1056
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1057
                    self.__get_exp_pub_entry("test2", 16, "quux", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1058
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1059
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1060
                self.assertEqual(len(returned), 11)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1061
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1062
                # Reset publisher search order and re-test.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1063
                api_obj.set_pub_search_before("test1", "test2")
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1064
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1065
                returned = self.__get_returned(api_obj.LIST_INSTALLED_NEWEST,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1066
                    api_obj=api_obj)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1067
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1068
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1069
                    self.__get_exp_pub_entry("test2", 5, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1070
                        "1.2.1,5.11-0", installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1071
                    self.__get_exp_pub_entry("test1", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1072
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1073
                    self.__get_exp_pub_entry("test2", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1074
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1075
                    self.__get_exp_pub_entry("test1", 12, "corge", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1076
                    self.__get_exp_pub_entry("test2", 12, "corge", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1077
                    self.__get_exp_pub_entry("test1", 13, "entire", "1.0,5.11",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1078
                        installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1079
                    self.__get_exp_pub_entry("test1", 14, "grault", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1080
                    self.__get_exp_pub_entry("test2", 14, "grault", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1081
                    self.__get_exp_pub_entry("test1", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1082
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1083
                    self.__get_exp_pub_entry("test2", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1084
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1085
                    self.__get_exp_pub_entry("test1", 16, "quux", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1086
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1087
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1088
                self.assertEqual(len(returned), 11)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1089
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1090
                # Reset image state for following tests.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1091
                api_obj.plan_uninstall(["*"], False)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1092
                api_obj.prepare()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1093
                api_obj.execute_plan()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1094
                api_obj.reset()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1095
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1096
        def test_list_06_upgradable(self):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1097
                """Verify the sort order and content of a list containing
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1098
                only upgradable packages and combinations thereof."""
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1099
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1100
                progresstracker = progress.NullProgressTracker()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1101
                api_obj = api.ImageInterface(self.get_img_path(), API_VERSION,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1102
                    progresstracker, lambda x: False, PKG_CLIENT_NAME)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1103
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1104
                # Verify no installed packages case.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1105
                returned = self.__get_returned(api_obj.LIST_UPGRADABLE,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1106
                    api_obj=api_obj)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1107
                self.assertEqual(len(returned), 0)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1108
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1109
                # Test results after installing packages and only listing the
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1110
                # installed, upgradable packages.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1111
                af = self.__get_pub_entry("test1", 3, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1112
                    "1.2.0,5.11-0")[0]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1113
                api_obj.plan_install([af.get_fmri(), "bat/bar", "qux"])
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1114
                api_obj.prepare()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1115
                api_obj.execute_plan()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1116
                api_obj.reset()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1117
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1118
                # Verify the results for LIST_UPGRADABLE.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1119
                returned = self.__get_returned(api_obj.LIST_UPGRADABLE,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1120
                    api_obj=api_obj)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1121
                self.assertEqual(len(returned), 1)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1122
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1123
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1124
                    self.__get_exp_pub_entry("test1", 3, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1125
                        "1.2.0,5.11-0", installed=True),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1126
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1127
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1128
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1129
                # Reset image state for following tests.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1130
                api_obj.plan_uninstall(["*"], False)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1131
                api_obj.prepare()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1132
                api_obj.execute_plan()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1133
                api_obj.reset()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1134
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1135
        def test_list_07_get_pkg_categories(self):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1136
                """Verify that get_pkg_categories returns expected results."""
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1137
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1138
                progresstracker = progress.NullProgressTracker()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1139
                api_obj = api.ImageInterface(self.get_img_path(), API_VERSION,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1140
                    progresstracker, lambda x: False, PKG_CLIENT_NAME)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1141
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1142
                # Verify no installed packages case.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1143
                returned = api_obj.get_pkg_categories(installed=True)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1144
                self.assertEqual(len(returned), 0)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1145
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1146
                def get_pkg_cats(p):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1147
                        stem, ver = p.split("@")
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1148
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1149
                        # XXX version should not require 5.11
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1150
                        sver = version.Version(ver, "5.11")
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1151
                        sver = str(sver).split(":", 1)[0]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1152
                        raw_cats = self.__get_pkg_cats(stem, sver)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1153
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1154
                        pcats = []
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1155
                        for e in raw_cats:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1156
                                if e and ":" in e:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1157
                                        scheme, cat = e.split(":", 1)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1158
                                else:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1159
                                        scheme = ""
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1160
                                        cat = e
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1161
                                pcats.append((scheme, cat))
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1162
                        return pcats
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1163
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1164
                # Verify all case.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1165
                returned = api_obj.get_pkg_categories()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1166
                all_pkgs = self.packages
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1167
                all_cats = sorted(set(
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1168
                    sc
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1169
                    for p in all_pkgs
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1170
                    for sc in get_pkg_cats(p)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1171
                ))
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1172
                self.assertPrettyEqual(returned, all_cats)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1173
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1174
                # Verify all case with a few different pub combos.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1175
                combos = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1176
                    (["test1", "test2"], all_cats),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1177
                    (["test1"], all_cats),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1178
                    (["test2"], all_cats),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1179
                    (["test3"], []),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1180
                    ([], all_cats),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1181
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1182
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1183
                for combo, expected in combos:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1184
                        returned = api_obj.get_pkg_categories(pubs=combo)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1185
                        self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1186
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1187
                # Now install different sets of packages and ensure the
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1188
                # results match what is expected.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1189
                combos = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1190
                    [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1191
                        self.dlist1[6], # "[email protected],5.11-1"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1192
                        self.dlist1[7], # "[email protected],5.11-0"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1193
                    ],
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1194
                    [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1195
                        self.dlist1[12], # "[email protected]"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1196
                        self.dlist1[14], # "[email protected]"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1197
                    ],
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1198
                    [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1199
                        self.dlist1[16], # "[email protected]"
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1200
                    ],
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1201
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1202
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1203
                for combo in combos:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1204
                        import time
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1205
                        self.debug("combo: %s, time: %s" % (combo, time.ctime()))
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1206
                        pkgs = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1207
                            f.get_fmri(anarchy=True, include_scheme=False)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1208
                            for f in combo
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1209
                        ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1210
                        self.debug("plan install: %s" % time.ctime())
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1211
                        api_obj.plan_install(pkgs)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1212
                        self.debug("prepare install: %s" % time.ctime())
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1213
                        api_obj.prepare()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1214
                        self.debug("execute install: %s" % time.ctime())
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1215
                        api_obj.execute_plan()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1216
                        self.debug("1reset: %s" % time.ctime())
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1217
                        api_obj.reset()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1218
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1219
                        returned = api_obj.get_pkg_categories(installed=True)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1220
                        expected = sorted(set(
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1221
                            sc
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1222
                            for p in pkgs
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1223
                            for sc in get_pkg_cats(p)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1224
                        ))
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1225
                        self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1226
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1227
                        # Prepare for next test.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1228
                        self.debug("plan uninstall: %s" % time.ctime())
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1229
                        api_obj.plan_uninstall(pkgs, False)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1230
                        self.debug("prepare uninstall: %s" % time.ctime())
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1231
                        api_obj.prepare()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1232
                        self.debug("execute uninstall: %s" % time.ctime())
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1233
                        api_obj.execute_plan()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1234
                        self.debug("2reset: %s" % time.ctime())
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1235
                        api_obj.reset()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1236
                self.debug("test finished: %s" % time.ctime())
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1237
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1238
        def test_list_08_patterns(self):
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1239
                """Verify that pattern filtering works as expected."""
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1240
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1241
                progresstracker = progress.NullProgressTracker()
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1242
                api_obj = api.ImageInterface(self.get_img_path(), API_VERSION,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1243
                    progresstracker, lambda x: False, PKG_CLIENT_NAME)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1244
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1245
                # First, check all variants, but with multiple patterns for the
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1246
                # partial, exact, and wildcard match cases.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1247
                patterns = ["bar", "pkg:/baz", "*obs*"]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1248
                returned = self.__get_returned(api_obj.LIST_ALL,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1249
                    api_obj=api_obj, patterns=patterns, variants=True)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1250
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1251
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1252
                    self.__get_exp_pub_entry("test1", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1253
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1254
                    self.__get_exp_pub_entry("test2", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1255
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1256
                    self.__get_exp_pub_entry("test1", 10, "baz", "1.3,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1257
                    self.__get_exp_pub_entry("test1", 9, "baz", "1.0.1,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1258
                    self.__get_exp_pub_entry("test1", 8, "baz", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1259
                    self.__get_exp_pub_entry("test2", 10, "baz", "1.3,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1260
                    self.__get_exp_pub_entry("test2", 9, "baz", "1.0.1,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1261
                    self.__get_exp_pub_entry("test2", 8, "baz", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1262
                    self.__get_exp_pub_entry("test1", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1263
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1264
                    self.__get_exp_pub_entry("test2", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1265
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1266
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1267
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1268
                self.assertEqual(len(returned), 10)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1269
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1270
                # Next, check all variants, but with exact and partial match.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1271
                patterns = ["pkg:/bar", "obsolete"]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1272
                returned = self.__get_returned(api_obj.LIST_ALL,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1273
                    api_obj=api_obj, patterns=patterns, variants=True)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1274
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1275
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1276
                    self.__get_exp_pub_entry("test1", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1277
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1278
                    self.__get_exp_pub_entry("test2", 15, "obsolete",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1279
                        "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1280
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1281
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1282
                self.assertEqual(len(returned), 2)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1283
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1284
                # Next, check all variants, but for publisher and exact
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1285
                # match case only.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1286
                patterns = ["pkg://test2/bat/bar"]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1287
                returned = self.__get_returned(api_obj.LIST_ALL,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1288
                    api_obj=api_obj, patterns=patterns, variants=True)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1289
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1290
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1291
                    self.__get_exp_pub_entry("test2", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1292
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1293
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1294
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1295
                self.assertEqual(len(returned), 1)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1296
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1297
                # Should return no matches.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1298
                patterns = ["pkg://test2/bar"]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1299
                returned = self.__get_returned(api_obj.LIST_ALL,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1300
                    api_obj=api_obj, patterns=patterns, variants=True)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1301
                expected = []
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1302
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1303
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1304
                # Next, check all variants, but for exact match case only.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1305
                patterns = ["pkg:/bat/bar"]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1306
                returned = self.__get_returned(api_obj.LIST_ALL,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1307
                    api_obj=api_obj, patterns=patterns, variants=True)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1308
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1309
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1310
                    self.__get_exp_pub_entry("test1", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1311
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1312
                    self.__get_exp_pub_entry("test2", 7, "bat/bar",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1313
                        "1.2,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1314
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1315
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1316
                self.assertEqual(len(returned), 2)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1317
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1318
                # Next, check version matching for a single pattern.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1319
                patterns = ["[email protected]"]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1320
                returned = self.__get_returned(api_obj.LIST_ALL,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1321
                    api_obj=api_obj, patterns=patterns, variants=True)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1322
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1323
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1324
                    self.__get_exp_pub_entry("test1", 3, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1325
                        "1.2.0,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1326
                    self.__get_exp_pub_entry("test2", 3, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1327
                        "1.2.0,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1328
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1329
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1330
                self.assertEqual(len(returned), 2)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1331
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1332
                patterns = ["[email protected]"]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1333
                returned = self.__get_returned(api_obj.LIST_ALL,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1334
                    api_obj=api_obj, patterns=patterns, variants=True)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1335
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1336
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1337
                    self.__get_exp_pub_entry("test1", 1, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1338
                        "1.0,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1339
                    self.__get_exp_pub_entry("test2", 1, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1340
                        "1.0,5.11-0"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1341
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1342
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1343
                self.assertEqual(len(returned), 2)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1344
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1345
                patterns = ["apple@*,*-1"]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1346
                returned = self.__get_returned(api_obj.LIST_ALL,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1347
                    api_obj=api_obj, patterns=patterns, variants=True)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1348
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1349
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1350
                    self.__get_exp_pub_entry("test1", 6, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1351
                        "1.2.1,5.11-1"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1352
                    self.__get_exp_pub_entry("test2", 6, "apple",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1353
                        "1.2.1,5.11-1"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1354
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1355
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1356
                self.assertEqual(len(returned), 2)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1357
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1358
                # Next, check version matching for multiple patterns.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1359
                patterns = ["[email protected]", "pkg:/[email protected]",
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1360
                    "pkg://test1/[email protected]"]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1361
                returned = self.__get_returned(api_obj.LIST_ALL,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1362
                    api_obj=api_obj, patterns=patterns, variants=True)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1363
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1364
                expected = [
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1365
                    self.__get_exp_pub_entry("test1", 9, "baz", "1.0.1,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1366
                    self.__get_exp_pub_entry("test1", 8, "baz", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1367
                    self.__get_exp_pub_entry("test2", 9, "baz", "1.0.1,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1368
                    self.__get_exp_pub_entry("test2", 8, "baz", "1.0,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1369
                    self.__get_exp_pub_entry("test1", 17, "qux", "0.9,5.11"),
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1370
                ]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1371
                self.assertPrettyEqual(returned, expected)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1372
                self.assertEqual(len(returned), 5)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1373
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1374
                # Finally, verify that specifying an illegal pattern will
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1375
                # raise an InventoryException.
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1376
                patterns = ["baz@1.*.a", "baz@*-1"]
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1377
                try:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1378
                        returned = self.__get_returned(api_obj.LIST_ALL,
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1379
                            api_obj=api_obj, patterns=patterns, variants=True)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1380
                except api_errors.InventoryException, e:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1381
                        self.assertEqual(e.illegal, patterns)
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1382
                else:
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1383
                        raise RuntimeError("InventoryException not raised!")
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1384
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1385
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1386
if __name__ == "__main__":
00a5b4d54eb8 5872 List APIs required
Shawn Walker <srw@sun.com>
parents:
diff changeset
  1387
        unittest.main()