def test_get_uptime(self):
        """
        Unit Test for get_uptime method
        """
        with patch('mod_status_info.subprocess.check_output'
                   ) as mocked_check_output:
            mocked_check_output.return_value = str.encode(
                ' 10:56:20 up 3 days, 10:07,  1 user,  load average: 4.26, 2.84, 2.12'
            )
            uptime = mod_status_info.StatusInfo().get_uptime()
            mocked_check_output.assert_called_with("uptime")
            self.assertEqual(uptime, "3d 10h 07m")

            mocked_check_output.return_value = str.encode(
                ' 21:59:11 up  1:33,  1 user,  load average: 0.02, 0.09, 0.09')
            uptime = mod_status_info.StatusInfo().get_uptime()
            mocked_check_output.assert_called_with("uptime")
            self.assertEqual(uptime, "1h 33m")

            mocked_check_output.return_value = str.encode(
                ' 20:26:06 up 0 min,  1 user,  load average: 0.24, 0.06, 0.02')
            uptime = mod_status_info.StatusInfo().get_uptime()
            mocked_check_output.assert_called_with("uptime")
            self.assertEqual(uptime, "0m")

            mocked_check_output.return_value = str.encode(
                ' 20:26:06 up 10 min,  1 user,  load average: 0.24, 0.06, 0.02'
            )
            uptime = mod_status_info.StatusInfo().get_uptime()
            mocked_check_output.assert_called_with("uptime")
            self.assertEqual(uptime, "10m")
    def test_get_cpu_usage(self):
        """
        Unit Test for get_cpu_usage method
        """
        self.assertIsInstance(mod_status_info.StatusInfo().get_cpu_usage(),
                              (int, float))

        with patch('mod_status_info.psutil.cpu_percent') as mocked_cpu_percent:
            mocked_cpu_percent.return_value = 20.5
            get_cpu_percent = mod_status_info.StatusInfo().get_cpu_usage()
            self.assertEqual(get_cpu_percent, 20.5)
    def test_get_hostname(self):
        """
        Unit Test for get_hostname method
        """
        with patch('mod_status_info.socket.getfqdn') as mocked_getfqdn:
            mocked_getfqdn.return_value = 'rodney-mac-wifi.lan\nrodney-mac-wifi.lan\nok\n'
            get_hostname = mod_status_info.StatusInfo().get_hostname()
            self.assertEqual(get_hostname, 'rodn')

            mocked_getfqdn.return_value = 'rpi0'
            get_hostname = mod_status_info.StatusInfo().get_hostname()
            self.assertEqual(get_hostname, 'rpi0')
    def test_get_ip_address(self):
        """
        Unit Test for get_ip_address method
        """
        with patch('mod_status_info.socket.socket.getsockname'
                   ) as mocked_getsockname:
            mocked_getsockname.return_value = ['192.168.8.100', 35527]
            get_hostname = mod_status_info.StatusInfo().get_ip_address()
            self.assertEqual(get_hostname, '192.168.8.100')

            mocked_getsockname.return_value = ['192.168.1.100']
            get_hostname = mod_status_info.StatusInfo().get_ip_address()
            self.assertEqual(get_hostname, '192.168.1.100')
 def test_get_debug_info(self):
     """
     Unit Test for get_debug_info method
     """
     debug_info = mod_status_info.StatusInfo().get_debug_info()
     self.assertIsInstance(debug_info, dict)
     self.assertIsInstance(debug_info['python_vesion'], str)
     self.assertIsInstance(debug_info['psutil_version'], str)
Ejemplo n.º 6
0
 def test_status(self):
     """
     Test the API status method
     """
     result = self.app.get(
         '/api/v1.0/status')  # service_status_api.do_status()
     self.assertEqual(result.status_code, 200)
     status = json.loads(result.data)
     test_results = mod_status_info.StatusInfo().get_info()
     self.assertTrue(dictionaries_equal(status, test_results))
 def test_get_cpu_temperature(self):
     """
     Unit Test for get_cpu_temperature method
     """
     with patch('mod_status_info.subprocess.check_output'
                ) as mocked_check_output:
         mocked_check_output.return_value = str.encode('temp=54.8\'C')
         temp = mod_status_info.StatusInfo().get_cpu_temperature()
         mocked_check_output.assert_called_with(
             ['vcgencmd', 'measure_temp'])
         self.assertIsInstance(temp, (int, float))
         self.assertEqual(temp, 54.8)
    def test_get_info(self):
        """
        Unit Test for get_info method
        """
        info_default = mod_status_info.StatusInfo().get_info()
        info_with_false = mod_status_info.StatusInfo().get_info(False)
        info_with_true = mod_status_info.StatusInfo().get_info(True)

        self.assertTrue(info_default['hostname'])
        self.assertTrue(info_default['ip'])
        self.assertTrue(info_default['uptime'])
        self.assertTrue(info_default['cpu'])
        self.assertTrue(info_default['cpu']['temperature'])
        self.assertTrue('usage' in info_default['cpu'])
        self.assertTrue(info_default['cpu_count'])
        self.assertTrue(info_default['uname'])
        self.assertTrue(info_default['ram'])
        self.assertFalse('debug' in info_default)

        self.assertTrue(info_with_false['hostname'])
        self.assertTrue(info_with_false['ip'])
        self.assertTrue(info_with_false['uptime'])
        self.assertTrue(info_with_false['cpu'])
        self.assertTrue(info_with_false['cpu']['temperature'])
        self.assertTrue('usage' in info_with_false['cpu'])
        self.assertTrue(info_with_false['cpu_count'])
        self.assertTrue(info_with_false['uname'])
        self.assertTrue(info_with_false['ram'])
        self.assertFalse('debug' in info_with_false)

        self.assertTrue(info_with_true['hostname'])
        self.assertTrue(info_with_true['ip'])
        self.assertTrue(info_with_true['uptime'])
        self.assertTrue(info_with_true['cpu'])
        self.assertTrue(info_with_true['cpu']['temperature'])
        self.assertTrue('usage' in info_with_true['cpu'])
        self.assertTrue(info_with_true['cpu_count'])
        self.assertTrue(info_with_true['uname'])
        self.assertTrue(info_with_true['ram'])
        self.assertTrue(info_with_true['debug'])
    def test_get_ram_info_psutil(self):
        """
        Unit Test for get_ram_info using psutil method
        """
        with patch('mod_status_info.subprocess.check_output'
                   ) as mocked_check_output:
            mocked_check_output.return_value = ''

            with patch('psutil.virtual_memory') as mocked_virtual_memory:
                mocked_virtual_memory.return_value = [
                    8589934592, 1734578176, 79.8, 7454433280, 334585856,
                    1619017728, 1399992320, 4435423232
                ]
                get_ram_info = mod_status_info.StatusInfo().get_ram_info()
                mocked_check_output.assert_called_with('free')
                self.assertIsInstance(get_ram_info, dict)
                self.assertEqual(
                    get_ram_info, {
                        'method': 'psutil',
                        'total': 8589934592,
                        'used': 7454433280,
                        'free': 1734578176,
                        'percent_used': 79.8
                    })

                mocked_virtual_memory.return_value = [
                    8000000000, 2000000000, 75.0, 6000000000, 300000000,
                    1619017728, 1399992320, 4435423232
                ]
                get_ram_info = mod_status_info.StatusInfo().get_ram_info()
                mocked_check_output.assert_called_with('free')
                self.assertIsInstance(get_ram_info, dict)
                self.assertEqual(
                    get_ram_info, {
                        'method': 'psutil',
                        'total': 8000000000,
                        'used': 6000000000,
                        'free': 2000000000,
                        'percent_used': 75.0
                    })
 def test_get_ram_info_free(self):
     """
     Unit Test for get_ram_info using free method
     """
     self.assertIsInstance(mod_status_info.StatusInfo().get_ram_info(),
                           dict)
     with patch('mod_status_info.subprocess.check_output'
                ) as mocked_check_output:
         mocked_check_output.return_value = str.encode(
             '              total        used        free      shared  buff/cache   available\nMem:        1000312      490444       35076       56956      474792      393872\nSwap:             0           0           0\n'
         )
         get_ram_info = mod_status_info.StatusInfo().get_ram_info()
         mocked_check_output.assert_called_with('free')
         self.assertIsInstance(get_ram_info, dict)
         self.assertEqual(
             get_ram_info, {
                 'method': 'free',
                 'total': 1000312,
                 'free': 35076,
                 'used': 490444,
                 'percent_used': 49.0
             })
 def test_get_ram_percent(self):
     """
     Unit Test for get_ram_percent method
     """
     with patch('mod_status_info.subprocess.check_output'
                ) as mocked_check_output:
         mocked_check_output.return_value = str.encode(
             '              total        used        free      shared  buff/cache   available\nMem:        1000312      490444       35076       56956      474792      393872\nSwap:             0           0           0\n'
         )
         get_ram_percent = mod_status_info.StatusInfo().get_ram_percent()
         mocked_check_output.assert_called_with('free')
         self.assertIsInstance(get_ram_percent, float)
         self.assertEqual(get_ram_percent, 49.0)
    def test_get_uname(self):
        """
        Unit Test for get_uname method
        """
        with patch('mod_status_info.platform.uname') as mocked_uname:
            mocked_uname.return_value = [
                'Linux', 'rpi0', '4.9.80-v7+',
                '#1098 SMP Fri Mar 9 19:11:42 GMT 2018', 'armv7l', ''
            ]
            uname = mod_status_info.StatusInfo().get_uname()
            self.assertEqual(
                uname, {
                    'node': 'rpi0',
                    'system': 'Linux',
                    'machine': 'armv7l',
                    'version': '#1098 SMP Fri Mar 9 19:11:42 GMT 2018',
                    'release': '4.9.80-v7+',
                    'processor': ''
                })

            mocked_uname.return_value = [
                'Darwin', 'Rodney-Mac-wifi.lan', '17.4.0',
                'Darwin Kernel Version 17.4.0: Sun Dec 17 09:19:54 PST 2017; root:xnu-4570.41.2~1/RELEASE_X86_64',
                'x86_64', 'i386'
            ]
            uname = mod_status_info.StatusInfo().get_uname()
            self.assertEqual(
                uname, {
                    'node': 'Rodney-Mac-wifi.lan',
                    'system': 'Darwin',
                    'machine': 'x86_64',
                    'version':
                    'Darwin Kernel Version 17.4.0: Sun Dec 17 09:19:54 PST 2017; root:xnu-4570.41.2~1/RELEASE_X86_64',
                    'release': '17.4.0',
                    'processor': 'i386'
                })
    def get_ram_info_nofree_nopsutil(self):
        """
        Unit Test for get_ram_info when free and psutil are unavaiable
        """
        with patch('mod_status_info.subprocess.check_output'
                   ) as mocked_check_output:
            mocked_check_output.return_value = ''

            with patch('psutil.virtual_memory') as mocked_virtual_memory:
                mocked_virtual_memory.return_value = []
                get_ram_info = mod_status_info.StatusInfo().get_ram_info()
                mocked_check_output.assert_called_with('free')
                self.assertIsInstance(get_ram_info, dict)
                self.assertEqual(
                    get_ram_info, {
                        'method': 'n/a',
                        'total': None,
                        'used': None,
                        'free': None,
                        'percent_used': None
                    })