Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(586)

Side by Side Diff: recipe_engine/unittests/step_runner_test.py

Issue 2933473002: [context] Split "env" values and prefixes. (Closed)
Patch Set: comments, tests, better definition Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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 test_nothing_to_do(self):
68 self.assertEqual(
69 step_runner._merge_envs(self.original, {}, {}),
70 self.original)
71
72 def test_merge_with_empty_path_tuple(self):
73 self.assertEqual(step_runner._merge_envs(
74 self.original, {'FOO': ''}, {'FOO': ()}),
75 {'FOO': ''})
76
77 def test_merge_with_path_tuple(self):
78 self.assertEqual(step_runner._merge_envs(
79 self.original, {}, {'BAR': ('bar', 'baz')}),
80 {'FOO': 'foo', 'BAR': self.pathjoin('bar', 'baz')})
81
82 def test_merge_with_path_tuple_and_orig_env(self):
83 self.assertEqual(step_runner._merge_envs(
84 self.original, {}, {'FOO': ('bar', 'baz')}),
85 {'FOO': self.pathjoin('bar', 'baz', 'foo')})
86
87 def test_merge_with_path_tuple_and_env(self):
88 self.assertEqual(step_runner._merge_envs(
89 self.original, {'FOO': 'override'}, {'FOO': ('bar', 'baz')}),
90 {'FOO': self.pathjoin('bar', 'baz', 'override')})
91
92 def test_merge_with_path_tuple_and_env_subst(self):
93 self.assertEqual(step_runner._merge_envs(
94 self.original, {'FOO': 'a-%(FOO)s-b'}, {'FOO': ('bar', 'baz')}),
95 {'FOO': self.pathjoin('bar', 'baz', 'a-foo-b')})
96
97 def test_merge_with_path_tuple_and_env_empty_subst(self):
98 self.original['FOO'] = ''
99 self.assertEqual(step_runner._merge_envs(
100 self.original, {'FOO': '%(FOO)s'}, {'FOO': ('bar', 'baz')}),
101 {'FOO': self.pathjoin('bar', 'baz')})
102
103 def test_merge_with_path_tuple_and_env_clear(self):
104 self.assertEqual(step_runner._merge_envs(
105 self.original, {'FOO': None}, {'FOO': ('bar', 'baz')}),
106 {'FOO': self.pathjoin('bar', 'baz')})
107
108 def test_merge_with_subst(self):
109 self.assertEqual(step_runner._merge_envs(
110 self.original, {'FOO': 'a-%(FOO)s-b'}, {}),
111 {'FOO': 'a-foo-b'})
112
113 def test_merge_with_empty_subst(self):
114 self.original['FOO'] = ''
115 self.assertEqual(step_runner._merge_envs(
116 self.original, {'FOO': '%(FOO)s'}, {}),
117 {'FOO': ''})
118
119 def test_merge_with_clear(self):
120 self.assertEqual(step_runner._merge_envs(
121 self.original, {'FOO': None}, {}),
122 {})
123
124
56 if __name__ == '__main__': 125 if __name__ == '__main__':
57 unittest.main() 126 unittest.main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698