~rvb/maas/transaction-1.7-bug-1409852

« back to all changes in this revision

Viewing changes to src/maasserver/models/tests/test_sslkey.py

merged upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
75
75
 
76
76
    def test_sslkey_validation_with_valid_key(self):
77
77
        key_string = get_data('data/test_x509_0.pem')
78
 
        user = factory.make_user()
 
78
        user = factory.make_User()
79
79
        key = SSLKey(key=key_string, user=user)
80
80
        key.full_clean()
81
81
        # No ValidationError.
82
82
 
83
83
    def test_sslkey_validation_fails_if_key_is_invalid(self):
84
84
        key_string = factory.make_string()
85
 
        user = factory.make_user()
 
85
        user = factory.make_User()
86
86
        key = SSLKey(key=key_string, user=user)
87
87
        self.assertRaises(
88
88
            ValidationError, key.full_clean)
89
89
 
90
90
    def test_sslkey_display_is_marked_as_HTML_safe(self):
91
91
        key_string = get_data('data/test_x509_0.pem')
92
 
        user = factory.make_user()
 
92
        user = factory.make_User()
93
93
        key = SSLKey(key=key_string, user=user)
94
94
        display = key.display_html()
95
95
        self.assertIsInstance(display, SafeUnicode)
98
98
        self.patch(
99
99
            sslkey_module, 'find_ssl_common_name').return_value = "<escape>"
100
100
        key_string = get_data('data/test_x509_0.pem')
101
 
        user = factory.make_user()
 
101
        user = factory.make_User()
102
102
        key = SSLKey(key=key_string, user=user)
103
103
        display = key.display_html()
104
104
        self.assertThat(display, StartsWith("&lt;escape&gt;"))
107
107
 
108
108
    def test_sslkey_user_and_key_unique_together(self):
109
109
        key_string = get_data('data/test_x509_0.pem')
110
 
        user = factory.make_user()
 
110
        user = factory.make_User()
111
111
        key = SSLKey(key=key_string, user=user)
112
112
        key.save()
113
113
        key2 = SSLKey(key=key_string, user=user)
118
118
        # Even if we hack our way around model-level checks, uniqueness
119
119
        # of the user/key combination is enforced at the database level.
120
120
        key_string = get_data('data/test_x509_0.pem')
121
 
        user = factory.make_user()
 
121
        user = factory.make_User()
122
122
        existing_key = SSLKey(key=key_string, user=user)
123
123
        existing_key.save()
124
124
        # The trick to hack around the model-level checks: create a
125
125
        # duplicate key for another user, then attach it to the same
126
126
        # user as the existing key by updating it directly in the
127
127
        # database.
128
 
        redundant_key = SSLKey(key=key_string, user=factory.make_user())
 
128
        redundant_key = SSLKey(key=key_string, user=factory.make_User())
129
129
        redundant_key.save()
130
130
        self.assertRaises(
131
131
            IntegrityError,
134
134
 
135
135
    def test_sslkey_same_key_can_be_used_by_different_users(self):
136
136
        key_string = get_data('data/test_x509_0.pem')
137
 
        user = factory.make_user()
 
137
        user = factory.make_User()
138
138
        key = SSLKey(key=key_string, user=user)
139
139
        key.save()
140
 
        user2 = factory.make_user()
 
140
        user2 = factory.make_User()
141
141
        key2 = SSLKey(key=key_string, user=user2)
142
142
        key2.full_clean()
143
143
        # No ValidationError.
147
147
    """Testing for the :class:`SSLKeyManager` model manager."""
148
148
 
149
149
    def test_get_keys_for_user_no_keys(self):
150
 
        user = factory.make_user()
 
150
        user = factory.make_User()
151
151
        keys = SSLKey.objects.get_keys_for_user(user)
152
152
        self.assertItemsEqual([], keys)
153
153