poc3
This commit is contained in:
@@ -66,6 +66,32 @@ class FlowTrackerTests(unittest.TestCase):
|
||||
self.assertFalse(first_persist)
|
||||
self.assertFalse(second_persist)
|
||||
|
||||
def test_status_exposes_monotonic_directional_traffic_counters(self):
|
||||
pipeline = _Pipeline()
|
||||
tracker = FlowTracker(
|
||||
TrafficNormalizer("192.168.100.0/24"),
|
||||
pipeline, # type: ignore[arg-type]
|
||||
max_flows=1000,
|
||||
)
|
||||
outbound = _ipv4_tcp_frame("192.168.100.10", 51000, "1.1.1.1", 443, b"out")
|
||||
inbound = _ipv4_tcp_frame("1.1.1.1", 443, "192.168.100.10", 51000, b"in")
|
||||
internal = _ipv4_tcp_frame("192.168.100.10", 51000, "192.168.100.20", 443, b"lan")
|
||||
external = _ipv4_tcp_frame("1.1.1.1", 51000, "8.8.8.8", 443, b"wan")
|
||||
|
||||
for frame in (outbound, inbound, internal, external):
|
||||
tracker.observe(frame)
|
||||
|
||||
traffic = tracker.status()["traffic_counters"]
|
||||
self.assertEqual(traffic["packets_total"], 4)
|
||||
self.assertEqual(traffic["packets_out"], 1)
|
||||
self.assertEqual(traffic["packets_in"], 1)
|
||||
self.assertEqual(traffic["packets_internal"], 1)
|
||||
self.assertEqual(traffic["packets_external"], 1)
|
||||
self.assertEqual(
|
||||
traffic["bytes_total"],
|
||||
traffic["bytes_out"] + traffic["bytes_in"] + traffic["bytes_internal"] + traffic["bytes_external"],
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user