usr/src/cmd/ai-webserver/test/test_create_profile.py
author Ethan Quach <Ethan.Quach@sun.com>
Tue, 31 May 2011 14:21:09 -0700
changeset 1160 6f7e708c38ec
parent 1116 29e34d65ceef
child 1221 31c6d2de5731
permissions -rw-r--r--
16257 Support for zones configuration and installation should be included in AI 7041915 TransferFiles ICT should support transferring a directory that is more than one level deep. 7049824 System installed via AI ends up with incorrect mountpoints for shared ZFS datasets
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1075
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
     1
#!/usr/bin/python2.6
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
     2
#
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
     3
# CDDL HEADER START
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
     4
#
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
     8
#
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    12
# and limitations under the License.
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    13
#
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    19
#
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    20
# CDDL HEADER END
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    21
#
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    22
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    23
#
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    24
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    25
'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    26
To run these tests, see the instructions in usr/src/tools/tests/README.
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    27
Remember that since the proto area is used for the PYTHONPATH, the gate
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    28
must be rebuilt for these tests to pick up any changes in the tested code.
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    29
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    30
'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    31
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    32
import gettext
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    33
import lxml.etree 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    34
import os
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    35
import tempfile
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    36
import unittest
1116
29e34d65ceef 7040960 Missing usr/src/cmd/ai-webserver/export_profile.py in slim_source cause slim unit test failure.
William Schumann <william.schumann@sun.com>
parents: 1075
diff changeset
    37
1075
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    38
import osol_install.auto_install.AI_database as AIdb
1116
29e34d65ceef 7040960 Missing usr/src/cmd/ai-webserver/export_profile.py in slim_source cause slim unit test failure.
William Schumann <william.schumann@sun.com>
parents: 1075
diff changeset
    39
import osol_install.auto_install.create_profile as create_profile
29e34d65ceef 7040960 Missing usr/src/cmd/ai-webserver/export_profile.py in slim_source cause slim unit test failure.
William Schumann <william.schumann@sun.com>
parents: 1075
diff changeset
    40
import osol_install.auto_install.publish_manifest as publish_manifest
1075
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    41
import osol_install.libaiscf as smf
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    42
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    43
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    44
gettext.install("create-profile-test")
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    45
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    46
def do_nothing(*args, **kwargs):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    47
    '''does nothing'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    48
    pass
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    49
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    50
class MockGetManNames(object):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    51
    '''Class for mock AIdb.getManNames '''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    52
    def __init__(self, man_name="noname"):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    53
        self.name = man_name
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    54
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    55
    def __call__(self, queue):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    56
        return self.name
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    57
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    58
class MockGetCriteria(object):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    59
    '''Class for mock getCriteria '''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    60
    def __init__(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    61
        self.crit_stripped = ["arch", "mem", "ipv4", "mac"]
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    62
        self.crit_unstripped = ["MINmem", "MINipv4", "MINmac",
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    63
                                "MAXmem", "MAXipv4", "MAXmac", "arch"]
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    64
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    65
    def __call__(self, queue, table, onlyUsed=False, strip=False):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    66
        if strip:
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    67
            return self.crit_stripped
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    68
        else:
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    69
            return self.crit_unstripped
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    70
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    71
class MockGetColumns(object):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    72
    '''Class for mock getCriteria '''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    73
    def __init__(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    74
        self.crit_stripped = ["arch", "mem", "ipv4", "mac"]
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    75
        self.crit_unstripped = ["MINmem", "MINipv4", "MINmac",
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    76
                                "MAXmem", "MAXipv4", "MAXmac", "arch"]
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    77
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    78
    def __call__(self, queue, table, onlyUsed=False, strip=False):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    79
        if strip:
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    80
            return self.crit_stripped
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    81
        else:
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    82
            return self.crit_unstripped
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    83
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    84
class MockDataFiles(object):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    85
    '''Class for mock DataFiles'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    86
    def __init__(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    87
        self.criteria = None
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    88
        self.database = MockDataBase()
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    89
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    90
class MockQuery(object):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    91
    '''Class for mock query '''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    92
    def __init__(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    93
        self.query = None
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    94
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    95
    def __call__(self, query, commit=False):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    96
        self.query = query
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    97
        return self
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    98
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
    99
    def waitAns(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   100
        return
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   101
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   102
    def getResponse(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   103
        return
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   104
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   105
class MockQueue(object):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   106
    '''Class for mock database '''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   107
    def __init__(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   108
        self.criteria = None
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   109
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   110
    def put(self, query):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   111
        return
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   112
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   113
class MockDataBase(object):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   114
    '''Class for mock database '''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   115
    def __init__(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   116
        self.queue  = MockQueue()
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   117
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   118
    def getQueue(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   119
        return self.queue
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   120
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   121
class MockGetManifestCriteria(object):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   122
    '''Class for mock getCriteria '''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   123
    def __init__(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   124
        self.criteria = {"arch": "sparc", 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   125
                         "MINmem": None, "MAXmem": None, "MINipv4": None,
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   126
                         "MAXipv4":None, "MINmac": None, "MAXmac": None}
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   127
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   128
    def __call__(self, name, instance, queue, humanOutput=False,
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   129
                 onlyUsed=True):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   130
        return self.criteria
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   131
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   132
class MockAIservice(object):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   133
    '''Class for mock AIservice'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   134
    KEYERROR = False
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   135
    def __init__(self, *args, **kwargs):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   136
        if MockAIservice.KEYERROR:
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   137
            raise KeyError() 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   138
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   139
class MockAISCF(object):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   140
    '''Class for mock AISCF '''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   141
    def __init__(self, *args, **kwargs):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   142
        pass  
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   143
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   144
class MockAIRoot(object):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   145
    '''Class for mock _AI_root'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   146
    def __init__(self, tag="auto_install", name=None):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   147
        # name is value of name attribute in manifest 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   148
        if name:
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   149
            self.root = lxml.etree.Element(tag, name=name)
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   150
        else:
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   151
            self.root = lxml.etree.Element(tag)
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   152
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   153
    def getroot(self, *args, **kwargs):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   154
        return self.root
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   155
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   156
    def find(self, *args, **kwargs):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   157
        return self.root
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   158
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   159
class ParseOptions(unittest.TestCase):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   160
    '''Tests for parse_options. Some tests correctly output usage msg'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   161
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   162
    def setUp(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   163
        '''unit test set up'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   164
        self.smf_AIservice = smf.AIservice
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   165
        smf.AIservice = MockAIservice
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   166
        self.smf_AISCF = smf.AISCF
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   167
        smf.AISCF = MockAISCF
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   168
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   169
    def tearDown(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   170
        '''unit test tear down
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   171
        Functions originally saved in setUp are restored to their
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   172
        original values.
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   173
        '''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   174
        smf.AIservice = self.smf_AIservice
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   175
        smf.AISCF = self.smf_AISCF
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   176
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   177
    def test_parse_no_options(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   178
        '''Ensure no options caught'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   179
        self.assertRaises(SystemExit, create_profile.parse_options, []) 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   180
        myargs = ["mysvc"] 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   181
        self.assertRaises(SystemExit, create_profile.parse_options, myargs) 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   182
        myargs = ["profile"] 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   183
        self.assertRaises(SystemExit, create_profile.parse_options, myargs) 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   184
        myargs = ["mysvc", "profile"] 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   185
        self.assertRaises(SystemExit, create_profile.parse_options, myargs) 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   186
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   187
    def test_parse_invalid_options(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   188
        '''Ensure invalid option flagged'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   189
        myargs = ["-n", "mysvc", "-p", "profile", "-u"] 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   190
        self.assertRaises(SystemExit, create_profile.parse_options, myargs) 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   191
        myargs = ["-n", "mysvc", "-p", "profile", "-a"] 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   192
        self.assertRaises(SystemExit, create_profile.parse_options, myargs) 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   193
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   194
    def test_parse_options_novalue(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   195
        '''Ensure options with missing value caught'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   196
        myargs = ["-n", "mysvc", "-p", "profile", "-c"] 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   197
        self.assertRaises(SystemExit, create_profile.parse_options, myargs) 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   198
        myargs = ["-n", "-f", "profile"] 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   199
        self.assertRaises(SystemExit, create_profile.parse_options, myargs) 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   200
        myargs = ["-n", "mysvc", "-p"] 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   201
        self.assertRaises(SystemExit, create_profile.parse_options, myargs) 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   202
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   203
class CriteriaToDict(unittest.TestCase):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   204
    '''Tests for criteria_to_dict'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   205
1160
6f7e708c38ec 16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents: 1116
diff changeset
   206
    def test_case_conversion(self):
6f7e708c38ec 16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents: 1116
diff changeset
   207
        '''Ensure keys converted to lower case, values kept as input'''
6f7e708c38ec 16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents: 1116
diff changeset
   208
        criteria = ['ARCH=Sparc']
1075
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   209
        cri_dict = publish_manifest.criteria_to_dict(criteria)
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   210
        self.assertEquals(len(cri_dict), 1)
1160
6f7e708c38ec 16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents: 1116
diff changeset
   211
        self.assertEquals(cri_dict['arch'], 'Sparc')
1075
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   212
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   213
    def test_range_values(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   214
        '''Ensure ranges saved correctly'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   215
        criteria = ['mem=1048-2096']
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   216
        cri_dict = publish_manifest.criteria_to_dict(criteria)
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   217
        self.assertEquals(len(cri_dict), 1)
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   218
        self.assertTrue(cri_dict['mem'], '1048-2096')
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   219
1160
6f7e708c38ec 16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents: 1116
diff changeset
   220
    def test_list_values(self):
6f7e708c38ec 16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents: 1116
diff changeset
   221
        '''Ensure lists are saved correctly'''
6f7e708c38ec 16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents: 1116
diff changeset
   222
        criteria = ['zonename="z1 z2 Z3"']
6f7e708c38ec 16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents: 1116
diff changeset
   223
        cri_dict = publish_manifest.criteria_to_dict(criteria)
6f7e708c38ec 16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents: 1116
diff changeset
   224
        self.assertEquals(len(cri_dict), 1)
6f7e708c38ec 16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents: 1116
diff changeset
   225
        self.assertTrue(cri_dict['zonename'], 'z1 z2 Z3')
6f7e708c38ec 16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents: 1116
diff changeset
   226
6f7e708c38ec 16257 Support for zones configuration and installation should be included in AI
Ethan Quach <Ethan.Quach@sun.com>
parents: 1116
diff changeset
   227
1075
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   228
    def test_multiple_entries(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   229
        '''Ensure multiple criteria handled correctly'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   230
        criteria = ['ARCH=i86pc', 'MEM=1024', 'IPV4=129.224.45.185',
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   231
                  'PLATFORM=SUNW,Sun-Fire-T1000',
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   232
                  'MAC=0:14:4F:20:53:94-0:14:4F:20:53:A0']
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   233
        cri_dict = publish_manifest.criteria_to_dict(criteria)
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   234
        self.assertEquals(len(cri_dict), 5)
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   235
        self.assertTrue(cri_dict['arch'], 'i86pc')
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   236
        self.assertTrue(cri_dict['mem'], '1024')
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   237
        self.assertTrue(cri_dict['ipv4'], '129.224.45.185')
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   238
        self.assertTrue(cri_dict['platform'], 'sunw,sun-fire-t1000')
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   239
        self.assertTrue(cri_dict['mac'], '0:14:4f:20:53:94-0:14:4f:20:53:a0')
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   240
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   241
    def test_duplicate_criteria_detected(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   242
        '''Ensure duplicate criteria are detected'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   243
        criteria = ['ARCH=SPARC', 'arch=i386']
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   244
        self.assertRaises(ValueError, publish_manifest.criteria_to_dict,
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   245
                          criteria)
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   246
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   247
    def test_missing_equals(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   248
        '''Ensure missing equals sign is detected'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   249
        criteria = ['mem2048']
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   250
        self.assertRaises(ValueError, publish_manifest.criteria_to_dict,
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   251
                          criteria)
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   252
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   253
    def test_missing_value(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   254
        '''Ensure missing value is detected'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   255
        criteria = ['arch=']
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   256
        self.assertRaises(ValueError, publish_manifest.criteria_to_dict,
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   257
                          criteria)
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   258
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   259
    def test_missing_criteria(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   260
        '''Ensure missing criteria is detected'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   261
        criteria = ['=i386pc']
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   262
        self.assertRaises(ValueError, publish_manifest.criteria_to_dict,
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   263
                          criteria)
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   264
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   265
    def test_no_criteria(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   266
        '''Ensure case of no criteria is handled'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   267
        criteria = []
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   268
        cri_dict = publish_manifest.criteria_to_dict(criteria)
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   269
        self.assertEquals(len(cri_dict), 0)
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   270
        self.assertTrue(isinstance(cri_dict, dict))
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   271
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   272
    def test_parse_multi_options(self):
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   273
        '''Ensure multiple profiles processed'''
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   274
        myargs = ["-n", "mysvc", "-f", "profile", "-f", "profile2"] 
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   275
        options = create_profile.parse_options(myargs)
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   276
        self.assertEquals(options.profile_file, ["profile", "profile2"])
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   277
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   278
if __name__ == '__main__':
df96871c232d 16045 SC manifest should not be required to be in an XML comment when using embedded form
William Schumann <william.schumann@sun.com>
parents:
diff changeset
   279
    unittest.main()