1 # Copyright (c) 2017 Cable Television Laboratories, Inc. ("CableLabs")
2 # and others. All rights reserved.
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at:
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
17 from snaps.config.keypair import KeypairConfigError, KeypairConfig
20 class KeypairConfigUnitTests(unittest.TestCase):
22 Tests the construction of the KeypairConfig class
25 def test_no_params(self):
26 with self.assertRaises(KeypairConfigError):
29 def test_empty_config(self):
30 with self.assertRaises(KeypairConfigError):
31 KeypairConfig(**dict())
33 def test_small_key_size(self):
34 with self.assertRaises(KeypairConfigError):
35 KeypairConfig(name='foo', key_size=511)
37 def test_name_only(self):
38 settings = KeypairConfig(name='foo')
39 self.assertEqual('foo', settings.name)
40 self.assertEqual(1024, settings.key_size)
41 self.assertIsNone(settings.public_filepath)
42 self.assertIsNone(settings.private_filepath)
43 self.assertIsNone(settings.delete_on_clean)
45 def test_config_with_name_only(self):
46 settings = KeypairConfig(**{'name': 'foo'})
47 self.assertEqual('foo', settings.name)
48 self.assertEqual(1024, settings.key_size)
49 self.assertIsNone(settings.public_filepath)
50 self.assertIsNone(settings.private_filepath)
51 self.assertIsNone(settings.delete_on_clean)
53 def test_name_pub_only(self):
54 settings = KeypairConfig(name='foo', public_filepath='/foo/bar.pub')
55 self.assertEqual('foo', settings.name)
56 self.assertEqual(1024, settings.key_size)
57 self.assertEqual('/foo/bar.pub', settings.public_filepath)
58 self.assertIsNone(settings.private_filepath)
59 self.assertIsNone(settings.delete_on_clean)
61 def test_config_with_name_pub_only(self):
62 settings = KeypairConfig(
63 **{'name': 'foo', 'public_filepath': '/foo/bar.pub'})
64 self.assertEqual('foo', settings.name)
65 self.assertEqual(1024, settings.key_size)
66 self.assertEqual('/foo/bar.pub', settings.public_filepath)
67 self.assertIsNone(settings.private_filepath)
68 self.assertIsNone(settings.delete_on_clean)
70 def test_name_priv_only(self):
71 settings = KeypairConfig(name='foo', private_filepath='/foo/bar')
72 self.assertEqual('foo', settings.name)
73 self.assertEqual(1024, settings.key_size)
74 self.assertIsNone(settings.public_filepath)
75 self.assertEqual('/foo/bar', settings.private_filepath)
76 self.assertIsNone(settings.delete_on_clean)
78 def test_config_with_name_priv_only(self):
79 settings = KeypairConfig(
80 **{'name': 'foo', 'private_filepath': '/foo/bar'})
81 self.assertEqual('foo', settings.name)
82 self.assertEqual(1024, settings.key_size)
83 self.assertIsNone(settings.public_filepath)
84 self.assertEqual('/foo/bar', settings.private_filepath)
85 self.assertIsNone(settings.delete_on_clean)
87 def test_all_delete_bool(self):
88 settings = KeypairConfig(
89 name='foo', public_filepath='/foo/bar.pub',
90 private_filepath='/foo/bar', delete_on_clean=True,
92 self.assertEqual('foo', settings.name)
93 self.assertEqual(999, settings.key_size)
94 self.assertEqual('/foo/bar.pub', settings.public_filepath)
95 self.assertEqual('/foo/bar', settings.private_filepath)
96 self.assertTrue(settings.delete_on_clean)
98 def test_all_delete_str_true_cap(self):
99 settings = KeypairConfig(
100 name='foo', public_filepath='/foo/bar.pub',
101 private_filepath='/foo/bar', delete_on_clean='True')
102 self.assertEqual('foo', settings.name)
103 self.assertEqual(1024, settings.key_size)
104 self.assertEqual('/foo/bar.pub', settings.public_filepath)
105 self.assertEqual('/foo/bar', settings.private_filepath)
106 self.assertTrue(settings.delete_on_clean)
108 def test_all_delete_str_true_lc(self):
109 settings = KeypairConfig(
110 name='foo', public_filepath='/foo/bar.pub',
111 private_filepath='/foo/bar', delete_on_clean='true')
112 self.assertEqual('foo', settings.name)
113 self.assertEqual(1024, settings.key_size)
114 self.assertEqual('/foo/bar.pub', settings.public_filepath)
115 self.assertEqual('/foo/bar', settings.private_filepath)
116 self.assertTrue(settings.delete_on_clean)
118 def test_all_delete_str_false_cap(self):
119 settings = KeypairConfig(
120 name='foo', public_filepath='/foo/bar.pub',
121 private_filepath='/foo/bar', delete_on_clean='False')
122 self.assertEqual('foo', settings.name)
123 self.assertEqual(1024, settings.key_size)
124 self.assertEqual('/foo/bar.pub', settings.public_filepath)
125 self.assertEqual('/foo/bar', settings.private_filepath)
126 self.assertFalse(settings.delete_on_clean)
128 def test_all_delete_str_false_lc(self):
129 settings = KeypairConfig(
130 name='foo', public_filepath='/foo/bar.pub',
131 private_filepath='/foo/bar', delete_on_clean='false',
133 self.assertEqual('foo', settings.name)
134 self.assertEqual(999, settings.key_size)
135 self.assertEqual('/foo/bar.pub', settings.public_filepath)
136 self.assertEqual('/foo/bar', settings.private_filepath)
137 self.assertFalse(settings.delete_on_clean)
139 def test_config_all_delete_false_bool(self):
140 settings = KeypairConfig(
141 **{'name': 'foo', 'public_filepath': '/foo/bar.pub',
142 'private_filepath': '/foo/bar', 'delete_on_clean': False,
144 self.assertEqual('foo', settings.name)
145 self.assertEqual(999, settings.key_size)
146 self.assertEqual('/foo/bar.pub', settings.public_filepath)
147 self.assertEqual('/foo/bar', settings.private_filepath)
148 self.assertFalse(settings.delete_on_clean)
150 def test_config_all_delete_false_str_cap(self):
151 settings = KeypairConfig(
152 **{'name': 'foo', 'public_filepath': '/foo/bar.pub',
153 'private_filepath': '/foo/bar', 'delete_on_clean': 'False'})
154 self.assertEqual('foo', settings.name)
155 self.assertEqual(1024, settings.key_size)
156 self.assertEqual('/foo/bar.pub', settings.public_filepath)
157 self.assertEqual('/foo/bar', settings.private_filepath)
158 self.assertFalse(settings.delete_on_clean)
160 def test_config_all_delete_false_str_lc(self):
161 settings = KeypairConfig(
162 **{'name': 'foo', 'public_filepath': '/foo/bar.pub',
163 'private_filepath': '/foo/bar', 'delete_on_clean': 'false'})
164 self.assertEqual('foo', settings.name)
165 self.assertEqual(1024, settings.key_size)
166 self.assertEqual('/foo/bar.pub', settings.public_filepath)
167 self.assertEqual('/foo/bar', settings.private_filepath)
168 self.assertFalse(settings.delete_on_clean)
170 def test_config_all_delete_false_str_foo(self):
171 settings = KeypairConfig(
172 **{'name': 'foo', 'public_filepath': '/foo/bar.pub',
173 'private_filepath': '/foo/bar', 'delete_on_clean': 'foo',
175 self.assertEqual('foo', settings.name)
176 self.assertEqual(999, settings.key_size)
177 self.assertEqual('/foo/bar.pub', settings.public_filepath)
178 self.assertEqual('/foo/bar', settings.private_filepath)
179 self.assertFalse(settings.delete_on_clean)