annotate tests/unit.py @ 33:b7d6a90b0bb5

setup for serialization testing
author Jeff Hammel <jhammel@mozilla.com>
date Mon, 26 Mar 2012 20:31:12 -0700
parents da4d5c5831c6
children 79aca36abd9a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
1 #!/usr/bin/env python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
2
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
3 """
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
4 unit tests
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
5 """
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
6
30
b27a7cb2dd5b stub test for configuration providers
Jeff Hammel <jhammel@mozilla.com>
parents: 28
diff changeset
7 import configuration
0
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
8 import os
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
9 import sys
32
da4d5c5831c6 serialization testing stubbing
Jeff Hammel <jhammel@mozilla.com>
parents: 30
diff changeset
10 import tempfile
0
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
11 import unittest
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
12
32
da4d5c5831c6 serialization testing stubbing
Jeff Hammel <jhammel@mozilla.com>
parents: 30
diff changeset
13 try:
da4d5c5831c6 serialization testing stubbing
Jeff Hammel <jhammel@mozilla.com>
parents: 30
diff changeset
14 import json
da4d5c5831c6 serialization testing stubbing
Jeff Hammel <jhammel@mozilla.com>
parents: 30
diff changeset
15 except ImportError:
da4d5c5831c6 serialization testing stubbing
Jeff Hammel <jhammel@mozilla.com>
parents: 30
diff changeset
16 import simplejson as json
da4d5c5831c6 serialization testing stubbing
Jeff Hammel <jhammel@mozilla.com>
parents: 30
diff changeset
17
19
cadc9514f60a we have a legitimately failing test!
Jeff Hammel <jhammel@mozilla.com>
parents: 11
diff changeset
18 from example import ExampleConfiguration # example configuration to test
11
e00afe2c83bf stubbing configuration parser
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
19
0
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
20 # globals
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
21 here = os.path.dirname(os.path.abspath(__file__))
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
22
24
39f2611db9be rename a bunch of things and begin to work on the sanity of validation
Jeff Hammel <jhammel@mozilla.com>
parents: 19
diff changeset
23 class ConfigurationUnitTest(unittest.TestCase):
0
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
24
24
39f2611db9be rename a bunch of things and begin to work on the sanity of validation
Jeff Hammel <jhammel@mozilla.com>
parents: 19
diff changeset
25 def test_cli(self):
28
c516ab813079 begin stubbing serialization/deserialization
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
26 """test command line interface"""
c516ab813079 begin stubbing serialization/deserialization
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
27
19
cadc9514f60a we have a legitimately failing test!
Jeff Hammel <jhammel@mozilla.com>
parents: 11
diff changeset
28 example = ExampleConfiguration()
cadc9514f60a we have a legitimately failing test!
Jeff Hammel <jhammel@mozilla.com>
parents: 11
diff changeset
29
cadc9514f60a we have a legitimately failing test!
Jeff Hammel <jhammel@mozilla.com>
parents: 11
diff changeset
30 # parse command line arguments
cadc9514f60a we have a legitimately failing test!
Jeff Hammel <jhammel@mozilla.com>
parents: 11
diff changeset
31 options, args = example.parse(['-a', 'ts', '--develop', '-e', '/home/jhammel/bin/firefox'])
25
b39e550402ea we now update configuration correctly
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
32
b39e550402ea we now update configuration correctly
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
33 # ensure that the options appropriately get set
19
cadc9514f60a we have a legitimately failing test!
Jeff Hammel <jhammel@mozilla.com>
parents: 11
diff changeset
34 self.assertEqual(bool(args), False) # no arguments
cadc9514f60a we have a legitimately failing test!
Jeff Hammel <jhammel@mozilla.com>
parents: 11
diff changeset
35 self.assertEqual(options.develop, True)
25
b39e550402ea we now update configuration correctly
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
36 self.assertEqual(options.activeTests, ['ts'])
b39e550402ea we now update configuration correctly
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
37 self.assertEqual(options.browser_path, '/home/jhammel/bin/firefox')
b39e550402ea we now update configuration correctly
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
38
b39e550402ea we now update configuration correctly
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
39 # ensure that the configuration appropriately gets updated
b39e550402ea we now update configuration correctly
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
40 self.assertEqual(example.config['develop'], True)
b39e550402ea we now update configuration correctly
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
41 self.assertEqual(example.config['activeTests'], ['ts'])
b39e550402ea we now update configuration correctly
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
42 self.assertEqual(example.config['browser_path'], '/home/jhammel/bin/firefox')
0
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
43
28
c516ab813079 begin stubbing serialization/deserialization
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
44 def test_configuration_providers(self):
c516ab813079 begin stubbing serialization/deserialization
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
45 """test file-based configuration providers"""
30
b27a7cb2dd5b stub test for configuration providers
Jeff Hammel <jhammel@mozilla.com>
parents: 28
diff changeset
46 # require json/simplejson and pyyaml to be installed
b27a7cb2dd5b stub test for configuration providers
Jeff Hammel <jhammel@mozilla.com>
parents: 28
diff changeset
47
b27a7cb2dd5b stub test for configuration providers
Jeff Hammel <jhammel@mozilla.com>
parents: 28
diff changeset
48 example = ExampleConfiguration()
b27a7cb2dd5b stub test for configuration providers
Jeff Hammel <jhammel@mozilla.com>
parents: 28
diff changeset
49
b27a7cb2dd5b stub test for configuration providers
Jeff Hammel <jhammel@mozilla.com>
parents: 28
diff changeset
50 # see what providers you got
b27a7cb2dd5b stub test for configuration providers
Jeff Hammel <jhammel@mozilla.com>
parents: 28
diff changeset
51 json_provider = example.configuration_provider('json')
b27a7cb2dd5b stub test for configuration providers
Jeff Hammel <jhammel@mozilla.com>
parents: 28
diff changeset
52 self.assertTrue(isinstance(json_provider, configuration.JSON))
28
c516ab813079 begin stubbing serialization/deserialization
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
53
33
b7d6a90b0bb5 setup for serialization testing
Jeff Hammel <jhammel@mozilla.com>
parents: 32
diff changeset
54 # serialize to a temporary file
b7d6a90b0bb5 setup for serialization testing
Jeff Hammel <jhammel@mozilla.com>
parents: 32
diff changeset
55 filename = tempfile.mktemp()
b7d6a90b0bb5 setup for serialization testing
Jeff Hammel <jhammel@mozilla.com>
parents: 32
diff changeset
56 if os.path.exists(filename):
b7d6a90b0bb5 setup for serialization testing
Jeff Hammel <jhammel@mozilla.com>
parents: 32
diff changeset
57 os.remove(filename)
b7d6a90b0bb5 setup for serialization testing
Jeff Hammel <jhammel@mozilla.com>
parents: 32
diff changeset
58
0
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
59 if __name__ == '__main__':
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
60 unittest.main()
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
61