This repository has been archived on 2025-03-20. You can view files and clone it, but cannot push or open issues or pull requests.
sonic-buildimage/src/sonic-host-services/tests/procdockerstatsd_test.py
Joe LeVeque 40e445794b Use 'importlib' module in lieu of deprecated 'imp' module (#6832)
Migrate from using the `imp` module to using the `importlib` module. As of Python 3, the `imp` module has been deprecated in favor of the `importlib` module.
2021-03-04 21:23:05 +00:00

48 lines
1.5 KiB
Python

import importlib
import sys
import os
import pytest
import swsssdk
from .mock_connector import MockConnector
swsssdk.SonicV2Connector = MockConnector
test_path = os.path.dirname(os.path.abspath(__file__))
modules_path = os.path.dirname(test_path)
scripts_path = os.path.join(modules_path, "scripts")
sys.path.insert(0, modules_path)
# Load the file under test
procdockerstatsd_path = os.path.join(scripts_path, 'procdockerstatsd')
loader = importlib.machinery.SourceFileLoader('procdockerstatsd', procdockerstatsd_path)
spec = importlib.util.spec_from_loader(loader.name, loader)
procdockerstatsd = importlib.util.module_from_spec(spec)
loader.exec_module(procdockerstatsd)
sys.modules['procdockerstatsd'] = procdockerstatsd
class TestProcDockerStatsDaemon(object):
def test_convert_to_bytes(self):
test_data = [
('1B', 1),
('500B', 500),
('1KB', 1000),
('500KB', 500000),
('1MB', 1000000),
('500MB', 500000000),
('1MiB', 1048576),
('500MiB', 524288000),
('66.41MiB', 69635932),
('333.6MiB', 349804954),
('1GiB', 1073741824),
('500GiB', 536870912000),
('7.751GiB', 8322572878)
]
pdstatsd = procdockerstatsd.ProcDockerStats(procdockerstatsd.SYSLOG_IDENTIFIER)
for test_input, expected_output in test_data:
res = pdstatsd.convert_to_bytes(test_input)
assert res == expected_output