OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2012 Google Inc. All Rights Reserved. | 2 # Copyright 2012 Google Inc. All Rights Reserved. |
3 # | 3 # |
4 # Licensed under the Apache License, Version 2.0 (the "License"); | 4 # Licensed under the Apache License, Version 2.0 (the "License"); |
5 # you may not use this file except in compliance with 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 | 6 # You may obtain a copy of the License at |
7 # | 7 # |
8 # http://www.apache.org/licenses/LICENSE-2.0 | 8 # http://www.apache.org/licenses/LICENSE-2.0 |
9 # | 9 # |
10 # Unless required by applicable law or agreed to in writing, software | 10 # Unless required by applicable law or agreed to in writing, software |
(...skipping 14 matching lines...) Expand all Loading... |
25 | 25 |
26 class MockOptions(dict): | 26 class MockOptions(dict): |
27 """A dict with items that can be accessed as attributes.""" | 27 """A dict with items that can be accessed as attributes.""" |
28 def __getattr__(self, name): | 28 def __getattr__(self, name): |
29 return self[name] | 29 return self[name] |
30 | 30 |
31 | 31 |
32 class OptionsWrapperTest(unittest.TestCase): | 32 class OptionsWrapperTest(unittest.TestCase): |
33 | 33 |
34 def testNoTrafficShapingByDefault(self): | 34 def testNoTrafficShapingByDefault(self): |
35 parser = replay.GetOptionParser() | 35 parser = replay.GetParser() |
36 options, args = parser.parse_args([]) | 36 options = parser.parse_args([]) |
37 options = replay.OptionsWrapper(options, parser) | 37 options = replay.OptionsWrapper(options, parser) |
38 self.assertEqual({}, options.shaping_dns) | 38 self.assertEqual({}, options.shaping_dns) |
39 self.assertEqual({}, options.shaping_http) | 39 self.assertEqual({}, options.shaping_http) |
40 self.assertEqual({}, options.shaping_dummynet) | 40 self.assertEqual({}, options.shaping_dummynet) |
41 | 41 |
42 def testShapingProxyWithoutOptionsGivesEmptySettings(self): | 42 def testShapingProxyWithoutOptionsGivesEmptySettings(self): |
43 parser = replay.GetOptionParser() | 43 parser = replay.GetParser() |
44 options, args = parser.parse_args(['--shaping=proxy']) | 44 options = parser.parse_args(['--shaping=proxy']) |
45 options = replay.OptionsWrapper(options, parser) | 45 options = replay.OptionsWrapper(options, parser) |
46 self.assertEqual({}, options.shaping_dns) | 46 self.assertEqual({}, options.shaping_dns) |
47 self.assertEqual({}, options.shaping_http) | 47 self.assertEqual({}, options.shaping_http) |
48 self.assertEqual({}, options.shaping_dummynet) | 48 self.assertEqual({}, options.shaping_dummynet) |
49 | 49 |
50 def testShapingProxyWithNetOption(self): | 50 def testShapingProxyWithNetOption(self): |
51 parser = replay.GetOptionParser() | 51 parser = replay.GetParser() |
52 options, args = parser.parse_args(['--shaping=proxy', '--net=cable']) | 52 options = parser.parse_args(['--shaping=proxy', '--net=cable']) |
53 options = replay.OptionsWrapper(options, parser) | 53 options = replay.OptionsWrapper(options, parser) |
54 expected_http = { | 54 expected_http = { |
55 'down_bandwidth': '5Mbit/s', 'delay_ms': '28', 'up_bandwidth': '1Mbit/s' | 55 'down_bandwidth': '5Mbit/s', 'delay_ms': '28', 'up_bandwidth': '1Mbit/s' |
56 } | 56 } |
57 self.assertEqual({'delay_ms': '28'}, options.shaping_dns) | 57 self.assertEqual({'delay_ms': '28'}, options.shaping_dns) |
58 self.assertEqual(expected_http, options.shaping_http) | 58 self.assertEqual(expected_http, options.shaping_http) |
59 self.assertEqual({}, options.shaping_dummynet) | 59 self.assertEqual({}, options.shaping_dummynet) |
60 | 60 |
61 def testNetOptionUsesDummynetByDefault(self): | 61 def testNetOptionUsesDummynetByDefault(self): |
62 parser = replay.GetOptionParser() | 62 parser = replay.GetParser() |
63 options, args = parser.parse_args(['--net=cable']) | 63 options = parser.parse_args(['--net=cable']) |
64 options = replay.OptionsWrapper(options, parser) | 64 options = replay.OptionsWrapper(options, parser) |
65 expected_dummynet = { | 65 expected_dummynet = { |
66 'down_bandwidth': '5Mbit/s', 'delay_ms': '28', 'up_bandwidth': '1Mbit/s' | 66 'down_bandwidth': '5Mbit/s', 'delay_ms': '28', 'up_bandwidth': '1Mbit/s' |
67 } | 67 } |
68 self.assertEqual({}, options.shaping_dns) | 68 self.assertEqual({}, options.shaping_dns) |
69 self.assertEqual({}, options.shaping_http) | 69 self.assertEqual({}, options.shaping_http) |
70 self.assertEqual(expected_dummynet, options.shaping_dummynet) | 70 self.assertEqual(expected_dummynet, options.shaping_dummynet) |
71 | 71 |
72 def testPacketLossForDummynet(self): | 72 def testPacketLossForDummynet(self): |
73 parser = replay.GetOptionParser() | 73 parser = replay.GetParser() |
74 options, args = parser.parse_args(['--packet_loss_rate=12']) | 74 options = parser.parse_args(['--packet_loss_rate=12']) |
75 options = replay.OptionsWrapper(options, parser) | 75 options = replay.OptionsWrapper(options, parser) |
76 self.assertEqual({'packet_loss_rate': '12'}, options.shaping_dummynet) | 76 self.assertEqual({'packet_loss_rate': '12'}, options.shaping_dummynet) |
77 | 77 |
78 def testIgnoredProxyShapingOptions(self): | 78 def testIgnoredProxyShapingOptions(self): |
79 parser = replay.GetOptionParser() | 79 parser = replay.GetParser() |
80 options, args = parser.parse_args( | 80 options = parser.parse_args( |
81 ['--packet_loss_rate=12', '--init_cwnd=10', '--shaping=proxy']) | 81 ['--packet_loss_rate=12', '--init_cwnd=10', '--shaping=proxy']) |
82 options = replay.OptionsWrapper(options, parser) | 82 options = replay.OptionsWrapper(options, parser) |
83 self.assertEqual({}, options.shaping_dns) | 83 self.assertEqual({}, options.shaping_dns) |
84 self.assertEqual({}, options.shaping_http) | 84 self.assertEqual({}, options.shaping_http) |
85 self.assertEqual({}, options.shaping_dummynet) | 85 self.assertEqual({}, options.shaping_dummynet) |
86 | 86 |
87 | 87 |
88 if __name__ == '__main__': | 88 if __name__ == '__main__': |
89 unittest.main() | 89 unittest.main() |
OLD | NEW |