def test__refreshed_binding(self): bindings = {} ip = IPAddress("192.168.0.1") mac = EUI("00:01:02:03:04:05") vid = None update_bindings_and_get_event(bindings, vid, ip, mac, 0) event = update_bindings_and_get_event(bindings, vid, ip, mac, SEEN_AGAIN_THRESHOLD) self.assertThat( bindings, Equals({(vid, ip): { "mac": mac, "time": SEEN_AGAIN_THRESHOLD }}), ) self.assertThat( event, Equals( dict( event="REFRESHED", ip=str(ip), mac=format_eui(mac), time=SEEN_AGAIN_THRESHOLD, vid=vid, )), )
def test__refreshed_binding_within_threshold_does_not_emit_event(self): bindings = {} ip = IPAddress("192.168.0.1") mac = EUI("00:01:02:03:04:05") vid = None update_bindings_and_get_event(bindings, vid, ip, mac, 0) event = update_bindings_and_get_event(bindings, vid, ip, mac, 1) self.assertThat(bindings, Equals({(vid, ip): {"mac": mac, "time": 0}})) self.assertIsNone(event)
def test__moved_binding(self): bindings = {} ip = IPAddress("192.168.0.1") mac1 = EUI("00:01:02:03:04:05") mac2 = EUI("02:03:04:05:06:07") vid = None update_bindings_and_get_event( bindings, vid, ip, mac1, 0) event = update_bindings_and_get_event( bindings, vid, ip, mac2, 1) self.assertThat(bindings, Equals({ (vid, ip): {"mac": mac2, "time": 1} })) self.assertThat(event, Equals(dict( event="MOVED", ip=str(ip), mac=format_eui(mac2), time=1, previous_mac=format_eui(mac1), vid=vid )))
def test__new_bindings_with_vid(self): bindings = {} ip = IPAddress("192.168.0.1") mac = EUI("00:01:02:03:04:05") vid = None event = update_bindings_and_get_event(bindings, vid, ip, mac, 0) self.assertThat(bindings, Equals({(vid, ip): {"mac": mac, "time": 0}})) self.assertThat( event, Equals( dict( event="NEW", ip=str(ip), mac=format_eui(mac), time=0, vid=vid, )), ) vid = 4095 event = update_bindings_and_get_event(bindings, vid, ip, mac, 0) self.assertThat( bindings, Equals({ (None, ip): { "mac": mac, "time": 0 }, (4095, ip): { "mac": mac, "time": 0 }, }), ) self.assertThat( event, Equals( dict( event="NEW", ip=str(ip), mac=format_eui(mac), time=0, vid=vid, )), )