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

Side by Side Diff: devserver_test.py

Issue 6425002: devserver: allow calling devserver from anywhere (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/dev-util.git@master
Patch Set: . Created 9 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « devserver.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 2
3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 """Regression tests for devserver.""" 7 """Regression tests for devserver."""
8 8
9 import os 9 import os
10 import signal 10 import signal
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 track="developer-build" 42 track="developer-build"
43 board="x86-generic"> 43 board="x86-generic">
44 <o:ping active="0"></o:ping> 44 <o:ping active="0"></o:ping>
45 <o:updatecheck></o:updatecheck> 45 <o:updatecheck></o:updatecheck>
46 </o:app> 46 </o:app>
47 </o:gupdate> 47 </o:gupdate>
48 """ 48 """
49 # TODO(girts): use a random available port. 49 # TODO(girts): use a random available port.
50 UPDATE_URL = 'http://127.0.0.1:8080/update' 50 UPDATE_URL = 'http://127.0.0.1:8080/update'
51 51
52 # Run all tests while being in /
53 base_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
54 os.chdir("/")
52 55
53 class DevserverTest(unittest.TestCase): 56 class DevserverTest(unittest.TestCase):
54 """Regressions tests for devserver.""" 57 """Regressions tests for devserver."""
55 58
56 def setUp(self): 59 def setUp(self):
57 """Copies in testing files.""" 60 """Copies in testing files."""
58 base_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
59 61
60 # Copy in developer-test.gz, as "static/" directory is hardcoded, and it 62 # Copy in developer-test.gz, as "static/" directory is hardcoded, and it
61 # would be very hard to change it (static file serving is handled deep 63 # would be very hard to change it (static file serving is handled deep
62 # inside webpy). 64 # inside webpy).
63 image_src = os.path.join(base_dir, TEST_IMAGE) 65 image_src = os.path.join(base_dir, TEST_IMAGE)
64 self.image = os.path.join(base_dir, STATIC_DIR, 'developer-test.gz') 66 self.image = os.path.join(base_dir, STATIC_DIR, 'developer-test.gz')
65 if os.path.exists(self.image): 67 if os.path.exists(self.image):
66 os.unlink(self.image) 68 os.unlink(self.image)
67 shutil.copy(image_src, self.image) 69 shutil.copy(image_src, self.image)
68 70
69 self.factory_config = os.path.join(base_dir, TEST_FACTORY_CONFIG) 71 self.factory_config = os.path.join(base_dir, TEST_FACTORY_CONFIG)
70 72
71 def tearDown(self): 73 def tearDown(self):
72 """Removes testing files.""" 74 """Removes testing files."""
73 if os.path.exists(self.image): 75 if os.path.exists(self.image):
74 os.unlink(self.image) 76 os.unlink(self.image)
75 77
76 def testValidateFactoryConfig(self): 78 def testValidateFactoryConfig(self):
77 """Tests --validate_factory_config.""" 79 """Tests --validate_factory_config."""
78 cmd = [ 80 cmd = [
79 'python', 81 'python',
80 'devserver.py', 82 os.path.join(base_dir, 'devserver.py'),
81 '--validate_factory_config', 83 '--validate_factory_config',
82 '--factory_config', self.factory_config, 84 '--factory_config', self.factory_config,
83 ] 85 ]
84 process = subprocess.Popen(cmd, stdout=subprocess.PIPE) 86 process = subprocess.Popen(cmd, stdout=subprocess.PIPE)
85 stdout, _ = process.communicate() 87 stdout, _ = process.communicate()
86 self.assertEqual(0, process.returncode) 88 self.assertEqual(0, process.returncode)
87 self.assertTrue('Config file looks good.' in stdout) 89 self.assertTrue('Config file looks good.' in stdout)
88 90
89 def _StartServer(self): 91 def _StartServer(self):
90 """Starts devserver, returns process.""" 92 """Starts devserver, returns process."""
91 cmd = [ 93 cmd = [
92 'python', 94 'python',
95 os.path.join(base_dir, 'devserver.py'),
93 'devserver.py', 96 'devserver.py',
94 '--factory_config', self.factory_config, 97 '--factory_config', self.factory_config,
95 ] 98 ]
96 process = subprocess.Popen(cmd) 99 process = subprocess.Popen(cmd)
97 return process.pid 100 return process.pid
98 101
99 def testHandleUpdate(self): 102 def testHandleUpdate(self):
100 """Tests running the server and getting an update.""" 103 """Tests running the server and getting an update."""
101 pid = self._StartServer() 104 pid = self._StartServer()
102 try: 105 try:
(...skipping 18 matching lines...) Expand all
121 # Try to fetch the image. 124 # Try to fetch the image.
122 connection = urllib2.urlopen(codebase) 125 connection = urllib2.urlopen(codebase)
123 contents = connection.read() 126 contents = connection.read()
124 self.assertEqual('Developers, developers, developers!\n', contents) 127 self.assertEqual('Developers, developers, developers!\n', contents)
125 finally: 128 finally:
126 os.kill(pid, signal.SIGKILL) 129 os.kill(pid, signal.SIGKILL)
127 130
128 131
129 if __name__ == '__main__': 132 if __name__ == '__main__':
130 unittest.main() 133 unittest.main()
OLDNEW
« no previous file with comments | « devserver.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698