| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright 2013 The LUCI Authors. All rights reserved. | 2 # Copyright 2013 The LUCI Authors. All rights reserved. |
| 3 # Use of this source code is governed under the Apache License, Version 2.0 | 3 # Use of this source code is governed under the Apache License, Version 2.0 |
| 4 # that can be found in the LICENSE file. | 4 # that can be found in the LICENSE file. |
| 5 | 5 |
| 6 import os |
| 6 import unittest | 7 import unittest |
| 7 | 8 |
| 8 import test_env | 9 import test_env |
| 9 | 10 |
| 10 from recipe_engine import step_runner | 11 from recipe_engine import step_runner |
| 11 | 12 |
| 12 | 13 |
| 13 class TestLinebuf(unittest.TestCase): | 14 class TestLinebuf(unittest.TestCase): |
| 14 def test_add_partial(self): | 15 def test_add_partial(self): |
| 15 lb = step_runner._streamingLinebuf() | 16 lb = step_runner._streamingLinebuf() |
| (...skipping 30 matching lines...) Expand all Loading... |
| 46 | 47 |
| 47 lb.ingest("doop\n") | 48 lb.ingest("doop\n") |
| 48 self.assertEqual(["nerdsdoop"], lb.get_buffered()) | 49 self.assertEqual(["nerdsdoop"], lb.get_buffered()) |
| 49 | 50 |
| 50 self.assertEqual([], lb.get_buffered()) | 51 self.assertEqual([], lb.get_buffered()) |
| 51 | 52 |
| 52 self.assertEqual([], lb.buffedlines) | 53 self.assertEqual([], lb.buffedlines) |
| 53 self.assertEqual("", lb.extra.getvalue()) | 54 self.assertEqual("", lb.extra.getvalue()) |
| 54 | 55 |
| 55 | 56 |
| 57 class TestMergeEnvs(unittest.TestCase): |
| 58 def setUp(self): |
| 59 self.original = { |
| 60 'FOO': 'foo', |
| 61 } |
| 62 |
| 63 @staticmethod |
| 64 def pathjoin(*parts): |
| 65 return os.pathsep.join(parts) |
| 66 |
| 67 def _merge(self, overrides, prefixes): |
| 68 return step_runner._merge_envs(self.original, overrides, prefixes, |
| 69 os.pathsep) |
| 70 |
| 71 def test_nothing_to_do(self): |
| 72 self.assertEqual( |
| 73 self._merge({}, {}), |
| 74 self.original) |
| 75 |
| 76 def test_merge_with_empty_path_tuple(self): |
| 77 self.assertEqual(self._merge( |
| 78 {'FOO': ''}, {'FOO': ()}), |
| 79 {'FOO': ''}) |
| 80 |
| 81 def test_merge_with_path_tuple(self): |
| 82 self.assertEqual(self._merge( |
| 83 {}, {'BAR': ('bar', 'baz')}), |
| 84 {'FOO': 'foo', 'BAR': self.pathjoin('bar', 'baz')}) |
| 85 |
| 86 def test_merge_with_path_tuple_and_orig_env(self): |
| 87 self.assertEqual(self._merge( |
| 88 {}, {'FOO': ('bar', 'baz')}), |
| 89 {'FOO': self.pathjoin('bar', 'baz', 'foo')}) |
| 90 |
| 91 def test_merge_with_path_tuple_and_env(self): |
| 92 self.assertEqual(self._merge( |
| 93 {'FOO': 'override'}, {'FOO': ('bar', 'baz')}), |
| 94 {'FOO': self.pathjoin('bar', 'baz', 'override')}) |
| 95 |
| 96 def test_merge_with_path_tuple_and_env_subst(self): |
| 97 self.assertEqual(self._merge( |
| 98 {'FOO': 'a-%(FOO)s-b'}, {'FOO': ('bar', 'baz')}), |
| 99 {'FOO': self.pathjoin('bar', 'baz', 'a-foo-b')}) |
| 100 |
| 101 def test_merge_with_path_tuple_and_env_empty_subst(self): |
| 102 self.original['FOO'] = '' |
| 103 self.assertEqual(self._merge( |
| 104 {'FOO': '%(FOO)s'}, {'FOO': ('bar', 'baz')}), |
| 105 {'FOO': self.pathjoin('bar', 'baz')}) |
| 106 |
| 107 def test_merge_with_path_tuple_and_env_clear(self): |
| 108 self.assertEqual(self._merge( |
| 109 {'FOO': None}, {'FOO': ('bar', 'baz')}), |
| 110 {'FOO': self.pathjoin('bar', 'baz')}) |
| 111 |
| 112 def test_merge_with_subst(self): |
| 113 self.assertEqual(self._merge( |
| 114 {'FOO': 'a-%(FOO)s-b'}, {}), |
| 115 {'FOO': 'a-foo-b'}) |
| 116 |
| 117 def test_merge_with_empty_subst(self): |
| 118 self.original['FOO'] = '' |
| 119 self.assertEqual(self._merge( |
| 120 {'FOO': '%(FOO)s'}, {}), |
| 121 {'FOO': ''}) |
| 122 |
| 123 def test_merge_with_clear(self): |
| 124 self.assertEqual(self._merge( |
| 125 {'FOO': None}, {}), |
| 126 {}) |
| 127 |
| 128 |
| 56 if __name__ == '__main__': | 129 if __name__ == '__main__': |
| 57 unittest.main() | 130 unittest.main() |
| OLD | NEW |