import sys,unittest,tempfile from pathlib import Path sys.path.insert(0,str(Path(__file__).resolve().parents[1]/'app')) from network_rates import NetworkRates class RatesTests(unittest.TestCase): def test_initial_idle_transfer_reset_and_switch(self): with tempfile.TemporaryDirectory() as root: def write(interface,rx,tx): p=Path(root)/interface/'statistics';p.mkdir(parents=True,exist_ok=True) (p/'rx_bytes').write_text(str(rx));(p/'tx_bytes').write_text(str(tx)) write('eth0',1000,2000);sampler=NetworkRates(root) self.assertEqual(sampler.sample('eth0',10),(None,None)) self.assertEqual(sampler.sample('eth0',15),(0,0)) write('eth0',1500,3000) self.assertEqual(sampler.sample('eth0',20),(100,200)) write('eth0',10,20) self.assertEqual(sampler.sample('eth0',25),(None,None)) write('wlan0',100,200) self.assertEqual(sampler.sample('wlan0',30),(None,None)) self.assertEqual(sampler.sample('missing',35),(None,None)) self.assertEqual(sampler.sample('eth0',40),(None,None)) self.assertEqual(sampler.sample('../eth0',45),(None,None))