18754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao#!/usr/bin/python 28754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao# Copyright (c) 2014 The Chromium OS Authors. All rights reserved. 38754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao# Use of this source code is governed by a BSD-style license that can be 48754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao# found in the LICENSE file. 58754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 68754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao"""Unittests for deploy_server_local.py.""" 78754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 88754a1a087a9553b277829583b46f05c07beb369Shuqian Zhaofrom __future__ import print_function 98754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 108754a1a087a9553b277829583b46f05c07beb369Shuqian Zhaoimport unittest 118754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 128754a1a087a9553b277829583b46f05c07beb369Shuqian Zhaoimport deploy_server as deploy_server 138754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 148754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 158754a1a087a9553b277829583b46f05c07beb369Shuqian Zhaoclass TestDeployServer(unittest.TestCase): 168754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao """Test deploy_server_local with commands mocked out.""" 178754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 188754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao def test_parse_arguments(self): 198754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao """Test deploy_server_local.parse_arguments.""" 208754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao # Only requires args. 218754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao results = deploy_server.parse_arguments(['--afe', 'foo']) 228754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao self.assertEqual( 238754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao {'afe': 'foo', 'servers': [], 'args': [], 248754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 'cont': False, 'dryrun': False, 'verbose': False, 259febd45bbbcaba56b66cd4b1febcb85f8b5bb591Shuqian Zhao 'force_update': False, 'logfile': '/tmp/deployment.log', 269febd45bbbcaba56b66cd4b1febcb85f8b5bb591Shuqian Zhao 'update_push_servers': False}, 278754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao vars(results)) 288754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 298754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao # Dryrun, continue 308754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao results = deploy_server.parse_arguments(['--afe', 'foo', 318754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao '--dryrun', '--continue']) 328754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao self.assertDictContainsSubset( 338754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao {'afe': 'foo', 'servers': [], 'args': [], 348754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 'cont': True, 'dryrun': True, 'verbose': False, 359febd45bbbcaba56b66cd4b1febcb85f8b5bb591Shuqian Zhao 'force_update': False, 'logfile': '/tmp/deployment.log', 369febd45bbbcaba56b66cd4b1febcb85f8b5bb591Shuqian Zhao 'update_push_servers': False}, 378754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao vars(results)) 388754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 398754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao # List some servers 408754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao results = deploy_server.parse_arguments(['--afe', 'foo', 418754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 'dummy', 'bar']) 428754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao self.assertDictContainsSubset( 438754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao {'afe': 'foo', 'servers': ['dummy', 'bar'], 'args': [], 448754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 'cont': False, 'dryrun': False, 'verbose': False, 459febd45bbbcaba56b66cd4b1febcb85f8b5bb591Shuqian Zhao 'force_update': False, 'logfile': '/tmp/deployment.log', 469febd45bbbcaba56b66cd4b1febcb85f8b5bb591Shuqian Zhao 'update_push_servers': False}, 478754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao vars(results)) 488754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 498754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao # List some local args 508754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao results = deploy_server.parse_arguments(['--afe', 'foo', 518754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao '--', 'dummy', 'bar']) 528754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao self.assertDictContainsSubset( 538754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao {'afe': 'foo', 'servers': [], 'args': ['dummy', 'bar'], 548754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 'cont': False, 'dryrun': False, 'verbose': False, 559febd45bbbcaba56b66cd4b1febcb85f8b5bb591Shuqian Zhao 'force_update': False, 'logfile': '/tmp/deployment.log', 569febd45bbbcaba56b66cd4b1febcb85f8b5bb591Shuqian Zhao 'update_push_servers': False}, 578754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao vars(results)) 588754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 598754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao # List everything. 608754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao results = deploy_server.parse_arguments( 618754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao ['--continue', '--afe', 'foo', '--dryrun', 'dummy', 'bar', 62a3438a5f7b385b204a0c8ccec6fa809c89b544bcShuqian Zhao '--', '--actions-only', '--dryrun', '--update_push_servers', 63a3438a5f7b385b204a0c8ccec6fa809c89b544bcShuqian Zhao '--force_update']) 648754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao self.assertDictContainsSubset( 658754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao {'afe': 'foo', 'servers': ['dummy', 'bar'], 668754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 'args': ['--actions-only', '--dryrun', 67a3438a5f7b385b204a0c8ccec6fa809c89b544bcShuqian Zhao '--update_push_servers', '--force_update'], 688754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 'cont': True, 'dryrun': True, 'verbose': False}, 698754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao vars(results)) 708754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 718754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao 728754a1a087a9553b277829583b46f05c07beb369Shuqian Zhaoif __name__ == '__main__': 738754a1a087a9553b277829583b46f05c07beb369Shuqian Zhao unittest.main() 74