add notification

This commit is contained in:
Hieu Le committed 2020-11-12 13:29:30 +07:00
1 parent 281a93a2cd
commit 6fc604b6f2
4 files changed
+64 -6

No files matched your search

+6
View File
@@ -88,3 +88,9 @@ deploy_production:
needs: [integrate]
only:
- master
notification:
stage: .post
script:
- curl -X POST $ZULIP_URL -u $ZULIP_EMAIL:$ZULIP_API -d "type=private" -d "to=$ZULIP_EMAIL" -d "content=$CI_COMMIT_DESCRIPTION - passed the tests."
needs: [integrate]
+1 -1
View File
@@ -79,7 +79,7 @@ class PacketTime:
"""
return max(self._get_packet_times()) - min(self._get_packet_times())
return 1e6 * (max(self._get_packet_times()) - min(self._get_packet_times()))
def get_var(self):
"""Calculates the variation of packet times in a network flow.
+1 -1
View File
@@ -163,7 +163,7 @@ class Flow:
return data
def add_packet(self, packet, direction) -> None:
def add_packet(self, packet: Any, direction: Enum) -> None:
"""Adds a packet to the current list of packets.
Args:
+56 -4
View File
@@ -1,13 +1,45 @@
from scapy.all import IP, TCP, UDP, ICMP
from scapy.all import IP, TCP, UDP, ICMP, Ether
from cicflowmeter.features.context.packet_flow_key import get_packet_flow_key
from cicflowmeter.features.context.packet_direction import PacketDirection
from cicflowmeter.flow import Flow
import pytest
def test_packet_flow_key():
@pytest.fixture
def mock_packet():
icmp_packet = IP(src="192.168.1.2", dst="192.168.1.1") / ICMP()
tcp_packet = IP(src="192.168.1.2", dst="192.168.1.1") / TCP()
udp_packet = IP(src="192.168.1.2", dst="192.168.1.1") / UDP()
tcp_packet = IP(src="192.168.1.2", dst="192.168.1.1", ihl=5) / TCP(dport=80)
udp_packet = IP(src="192.168.1.2", dst="192.168.1.1", ihl=5) / UDP(dport=53)
return icmp_packet, tcp_packet, udp_packet
@pytest.fixture
def mock_flow(mock_packet):
# TODO: get a real flow with cicflowmeter java version and rewrite testcase
_, tcp_packet, udp_packet = mock_packet
flow = Flow(tcp_packet, PacketDirection.FORWARD)
flow.add_packet(tcp_packet, PacketDirection.FORWARD)
flow.add_packet(tcp_packet, PacketDirection.REVERSE)
flow.add_packet(tcp_packet, PacketDirection.FORWARD)
flow.add_packet(tcp_packet, PacketDirection.REVERSE)
return flow
@pytest.fixture
def mock_flow_data(mock_flow):
data = mock_flow.get_data()
return data
def test_flow_data(mock_flow_data):
print(mock_flow_data)
assert len(mock_flow_data) > 70
def test_packet_flow_key(mock_packet):
icmp_packet, tcp_packet, udp_packet = mock_packet
with pytest.raises(Exception):
get_packet_flow_key(icmp_packet, PacketDirection.FORWARD)
@@ -26,3 +58,23 @@ def test_packet_flow_key():
# Test Port match source and destination
assert udp_forward[2] == udp_backward[3]
assert tcp_forward[2] == tcp_backward[3]
def test_flow_duration(mock_flow_data):
assert float(mock_flow_data["flow_duration"]).is_integer()
def test_flow_packet_count(mock_flow_data):
assert mock_flow_data["tot_fwd_pkts"] == 2
assert mock_flow_data["tot_bwd_pkts"] == 2
def test_flow_packet_rate(mock_flow_data):
assert mock_flow_data["flow_pkts_s"] == 0
assert mock_flow_data["flow_byts_s"] == 0
assert mock_flow_data["fwd_pkts_s"] == 0
assert mock_flow_data["bwd_pkts_s"] == 0
def test_flow_protocol(mock_flow_data):
assert mock_flow_data["protocol"] in (17, 6)