~lutostag/ubuntu/utopic/maas/1.5.2

« back to all changes in this revision

Viewing changes to src/maasserver/testing/factory.py

  • Committer: Package Import Robot
  • Author(s): Andres Rodriguez
  • Date: 2012-04-12 16:46:22 UTC
  • mto: (20.1.1 quantal) (1.2.1)
  • mto: This revision was merged to the branch mainline in revision 14.
  • Revision ID: package-import@ubuntu.com-20120412164622-laz1qoxycfrddka0
Tags: upstream-0.1+bzr462+dfsg
ImportĀ upstreamĀ versionĀ 0.1+bzr462+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
from maasserver.testing import get_data
30
30
from maasserver.testing.enum import map_enum
31
31
import maastesting.factory
 
32
from metadataserver.models import NodeCommissionResult
 
33
 
 
34
# We have a limited number of public keys:
 
35
# src/maasserver/tests/data/test_rsa{0, 1, 2, 3, 4}.pub
 
36
MAX_PUBLIC_KEYS = 5
32
37
 
33
38
 
34
39
class Factory(maastesting.factory.Factory):
71
76
        node.save(skip_check=True)
72
77
        return node
73
78
 
 
79
    def make_node_commission_result(self, node=None, name=None, data=None):
 
80
        if node is None:
 
81
            node = self.make_node()
 
82
        if name is None:
 
83
            name = "ncrname-" + self.getRandomString(92)
 
84
        if data is None:
 
85
            data = "ncrdata-" + self.getRandomString(1000)
 
86
        ncr = NodeCommissionResult(node=node, name=name, data=data)
 
87
        ncr.save()
 
88
        return ncr
 
89
 
74
90
    def make_mac_address(self, address):
75
91
        """Create a MAC address."""
76
92
        node = Node()
89
105
        return User.objects.create_user(
90
106
            username=username, password=password, email=email)
91
107
 
92
 
    def make_sshkey(self, user):
93
 
        key_string = get_data('data/test_rsa.pub')
 
108
    def make_sshkey(self, user, key_string=None):
 
109
        if key_string is None:
 
110
            key_string = get_data('data/test_rsa0.pub')
94
111
        key = SSHKey(key=key_string, user=user)
95
112
        key.save()
96
113
        return key
97
114
 
98
 
    def make_user_with_keys(self, n_keys=2, **kwargs):
99
 
        """Create a user with n `SSHKey`.
 
115
    def make_user_with_keys(self, n_keys=2, user=None, **kwargs):
 
116
        """Create a user with n `SSHKey`.  If user is not None, use this user
 
117
        instead of creating one.
100
118
 
101
119
        Additional keyword arguments are passed to `make_user()`.
102
 
 
103
 
        Keys will have a comment of the form: <username>-key-<i> where i
104
 
        is the key index.
105
120
        """
106
 
        user = self.make_user(**kwargs)
 
121
        if n_keys > MAX_PUBLIC_KEYS:
 
122
            raise RuntimeError(
 
123
                "Cannot create more than %d public keys.  If you need more: "
 
124
                "add more keys in src/maasserver/tests/data/."
 
125
                % MAX_PUBLIC_KEYS)
 
126
        if user is None:
 
127
            user = self.make_user(**kwargs)
 
128
        keys = []
107
129
        for i in range(n_keys):
108
 
            SSHKey(
109
 
                user=user,
110
 
                key='ssh-rsa KEY %s-key-%d' % (user.username, i)).save()
111
 
        return user
 
130
            key_string = get_data('data/test_rsa%d.pub' % i)
 
131
            key = SSHKey(user=user, key=key_string)
 
132
            key.save()
 
133
            keys.append(key)
 
134
        return user, keys
112
135
 
113
136
    def make_admin(self, username=None, password=None, email=None):
114
137
        admin = self.make_user(