~ubuntu-branches/ubuntu/quantal/cloud-init/quantal

« back to all changes in this revision

Viewing changes to tests/unittests/test_util.py

  • Committer: Package Import Robot
  • Author(s): Scott Moser
  • Date: 2012-09-30 14:29:04 UTC
  • Revision ID: package-import@ubuntu.com-20120930142904-nq8fkve62i0xytqz
* add CloudStack to DataSources listed by dpkg-reconfigure (LP: #1002155)
* New upstream snapshot.
  * 0440 permissions on /etc/sudoers.d files rather than 0644
  * get host ssh keys to the console (LP: #1055688)
  * MAAS DataSource adjust timestamp in oauth header to one based on the
    timestamp in the response of a 403.  This accounts for a bad local
    clock. (LP: #978127)
  * re-start the salt daemon rather than start to ensure config changes
    are taken.
  * allow for python unicode types in yaml that is loaded.
  * cleanup in how config modules get at users and groups.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
import os
2
2
import stat
 
3
import yaml
3
4
 
4
5
from mocker import MockerTestCase
5
6
from unittest import TestCase
268
269
        os.environ['DEBUG_PROC_CMDLINE'] = 'abcd 123'
269
270
        self.assertEqual(os.environ['DEBUG_PROC_CMDLINE'], util.get_cmdline())
270
271
 
 
272
 
 
273
class TestLoadYaml(TestCase):
 
274
    mydefault = "7b03a8ebace993d806255121073fed52"
 
275
 
 
276
    def test_simple(self):
 
277
        mydata = {'1': "one", '2': "two"}
 
278
        self.assertEqual(util.load_yaml(yaml.dump(mydata)), mydata)
 
279
 
 
280
    def test_nonallowed_returns_default(self):
 
281
        # for now, anything not in the allowed list just returns the default.
 
282
        myyaml = yaml.dump({'1': "one"})
 
283
        self.assertEqual(util.load_yaml(blob=myyaml,
 
284
                                        default=self.mydefault,
 
285
                                        allowed=(str,)),
 
286
                         self.mydefault)
 
287
 
 
288
    def test_bogus_returns_default(self):
 
289
        badyaml = "1\n 2:"
 
290
        self.assertEqual(util.load_yaml(blob=badyaml,
 
291
                                        default=self.mydefault),
 
292
                         self.mydefault)
 
293
 
 
294
    def test_unsafe_types(self):
 
295
        # should not load complex types
 
296
        unsafe_yaml = yaml.dump((1, 2, 3,))
 
297
        self.assertEqual(util.load_yaml(blob=unsafe_yaml,
 
298
                                        default=self.mydefault),
 
299
                         self.mydefault)
 
300
 
 
301
    def test_python_unicode(self):
 
302
        # complex type of python/unicde is explicitly allowed
 
303
        myobj = {'1': unicode("FOOBAR")}
 
304
        safe_yaml = yaml.dump(myobj)
 
305
        self.assertEqual(util.load_yaml(blob=safe_yaml,
 
306
                                        default=self.mydefault),
 
307
                         myobj)
 
308
 
 
309
 
271
310
# vi: ts=4 expandtab