Merge "Add task file and test case description file for TC063_StorageCapacity"
[yardstick.git] / tests / unit / benchmark / scenarios / networking / test_networkcapacity.py
1 #!/usr/bin/env python\r
2 \r
3 ##############################################################################\r
4 # Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.\r
5 #\r
6 # All rights reserved. This program and the accompanying materials\r
7 # are made available under the terms of the Apache License, Version 2.0\r
8 # which accompanies this distribution, and is available at\r
9 # http://www.apache.org/licenses/LICENSE-2.0\r
10 ##############################################################################\r
11 \r
12 # Unittest for yardstick.benchmark.scenarios.networking.networkcapacity.NetworkCapacity\r
13 \r
14 import mock\r
15 import unittest\r
16 import os\r
17 import json\r
18 \r
19 from yardstick.benchmark.scenarios.networking import networkcapacity\r
20 \r
21 SAMPLE_OUTPUT = '{"Number of connections":"308","Number of frames received": "166503"}'\r
22 \r
23 @mock.patch('yardstick.benchmark.scenarios.networking.networkcapacity.ssh')\r
24 class NetworkCapacityTestCase(unittest.TestCase):\r
25 \r
26     def setUp(self):\r
27         self.ctx = {\r
28                 'host': {\r
29                     'ip': '172.16.0.137',\r
30                     'user': 'cirros',\r
31                     'password': "root"\r
32                 },\r
33         }\r
34 \r
35         self.result = {}\r
36 \r
37     def test_capacity_successful_setup(self, mock_ssh):\r
38         c = networkcapacity.NetworkCapacity({}, self.ctx)\r
39         mock_ssh.SSH().execute.return_value = (0, '', '')\r
40         c.setup()\r
41         self.assertIsNotNone(c.client)\r
42         self.assertTrue(c.setup_done)\r
43 \r
44     def test_capacity_successful(self, mock_ssh):\r
45         c = networkcapacity.NetworkCapacity({}, self.ctx)\r
46 \r
47         mock_ssh.SSH().execute.return_value = (0, SAMPLE_OUTPUT, '')\r
48         c.run(self.result)\r
49         expected_result = json.loads(SAMPLE_OUTPUT)\r
50         self.assertEqual(self.result, expected_result)\r
51 \r
52     def test_capacity_unsuccessful_script_error(self, mock_ssh):\r
53         c = networkcapacity.NetworkCapacity({}, self.ctx)\r
54 \r
55         mock_ssh.SSH().execute.return_value = (1, '', 'FOOBAR')\r
56         self.assertRaises(RuntimeError, c.run, self.result)\r