53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
|
|
# Copyright 2018 The Chromium Authors
|
||
|
|
# Use of this source code is governed by a BSD-style license that can be
|
||
|
|
# found in the LICENSE file.
|
||
|
|
|
||
|
|
import json
|
||
|
|
import os
|
||
|
|
import shutil
|
||
|
|
import tempfile
|
||
|
|
import unittest
|
||
|
|
|
||
|
|
|
||
|
|
class CommandLineTest(unittest.TestCase):
|
||
|
|
# pylint: disable=super-with-arguments
|
||
|
|
def __init__(self, methodName, module):
|
||
|
|
super(CommandLineTest, self).__init__(methodName)
|
||
|
|
self._module = module
|
||
|
|
# pylint: disable=super-with-arguments
|
||
|
|
|
||
|
|
def setUp(self):
|
||
|
|
self.temp_dir = tempfile.mkdtemp(prefix='common_merge_script_tests')
|
||
|
|
|
||
|
|
def tearDown(self):
|
||
|
|
shutil.rmtree(self.temp_dir)
|
||
|
|
|
||
|
|
def test_accepts_task_output_dir(self):
|
||
|
|
task_output_dir = os.path.join(self.temp_dir, 'task_output_dir')
|
||
|
|
shard0_dir = os.path.join(task_output_dir, '0')
|
||
|
|
os.makedirs(shard0_dir)
|
||
|
|
summary_json = os.path.join(task_output_dir, 'summary.json')
|
||
|
|
with open(summary_json, 'w') as summary_file:
|
||
|
|
summary_contents = {
|
||
|
|
u'shards': [
|
||
|
|
{
|
||
|
|
u'state': u'COMPLETED',
|
||
|
|
},
|
||
|
|
],
|
||
|
|
}
|
||
|
|
json.dump(summary_contents, summary_file)
|
||
|
|
|
||
|
|
shard0_json = os.path.join(shard0_dir, 'output.json')
|
||
|
|
with open(shard0_json, 'w') as shard0_file:
|
||
|
|
json.dump({}, shard0_file)
|
||
|
|
|
||
|
|
output_json = os.path.join(self.temp_dir, 'merged.json')
|
||
|
|
|
||
|
|
raw_args = [
|
||
|
|
'--task-output-dir', task_output_dir,
|
||
|
|
'--summary-json', summary_json,
|
||
|
|
'--output-json', output_json,
|
||
|
|
shard0_json,
|
||
|
|
]
|
||
|
|
self.assertEqual(0, self._module.main(raw_args))
|