test_common_utils.py 1.13 KB
Newer Older
SparkSnail's avatar
SparkSnail committed
1
2
3
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.

4
5
from pathlib import Path
from subprocess import Popen, PIPE, STDOUT
SparkSnail's avatar
SparkSnail committed
6
from unittest import TestCase, main
7

SparkSnail's avatar
SparkSnail committed
8
from mock.restful_server import init_response
9
10
11
12
13

from nni.tools.nnictl.command_utils import kill_command
from nni.tools.nnictl.common_utils import get_yml_content, get_json_content, detect_process

cwd = Path(__file__).parent
SparkSnail's avatar
SparkSnail committed
14
15
16
17
18
19
20
21

class CommonUtilsTestCase(TestCase):

    @classmethod
    def setUpClass(cls):
        init_response()

    def test_get_yml(self):
22
23
        yml_path = cwd / 'config_files/test_files/test_yaml.yml'
        content = get_yml_content(str(yml_path))
SparkSnail's avatar
SparkSnail committed
24
25
26
        self.assertEqual(content, {'field':'test'})

    def test_get_json(self):
27
28
        json_path = cwd / 'config_files/test_files/test_json.json'
        content = get_json_content(str(json_path))
SparkSnail's avatar
SparkSnail committed
29
30
31
32
33
34
35
36
37
38
        self.assertEqual(content, {'field':'test'})

    def test_detect_process(self):
        cmds = ['sleep', '360000']
        process = Popen(cmds, stdout=PIPE, stderr=STDOUT)
        self.assertTrue(detect_process(process.pid))
        kill_command(process.pid)

if __name__ == '__main__':
    main()