24 lines
1.2 KiB
Python
24 lines
1.2 KiB
Python
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))
|