Skip to content

Commit fb2caf6

Browse files
authored
Merge pull request #704 from philipscoderepo/feature/add-packet-tests
Adding Test Coverage to Cover the fields.py file for LayerField and LayerFieldsContainer Classes
2 parents 7edb67e + af78007 commit fb2caf6

File tree

1 file changed

+93
-0
lines changed

1 file changed

+93
-0
lines changed

tests/packet/test_fields.py

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
import pytest
2+
3+
from pyshark.packet.fields import LayerField, LayerFieldsContainer
4+
5+
# Unit Tests - Layer Fields
6+
def test_layer_field_hide():
7+
hide_yes = LayerField(hide="yes")
8+
hide_not_yes = LayerField(hide="not yes")
9+
assert hide_yes.hide == True and hide_not_yes.hide == False
10+
11+
def test_layer_field_print_format():
12+
name = "test_name"
13+
show = "test"
14+
test_layer_field = LayerField(name=name, show=show)
15+
str_layer_field = test_layer_field.__repr__()
16+
assert str_layer_field == f'<LayerField {name}: {show}>'
17+
18+
def test_layer_field_default_value_show():
19+
show = "test"
20+
test_layer_field = LayerField(show=show)
21+
default_value = test_layer_field.get_default_value()
22+
assert default_value == show
23+
24+
def test_layer_field_default_value_value():
25+
value = "test"
26+
test_layer_field = LayerField(value=value)
27+
default_value = test_layer_field.get_default_value()
28+
assert default_value == value
29+
30+
def test_layer_field_default_value_showname():
31+
showname = "test"
32+
test_layer_field = LayerField(showname=showname)
33+
default_value = test_layer_field.get_default_value()
34+
assert default_value == showname
35+
36+
def test_layer_field_showname_value():
37+
value = "test_value"
38+
showname = f"test: {value}"
39+
test_layer_field = LayerField(showname=showname)
40+
assert value == test_layer_field.showname_value
41+
42+
def test_layer_field_showname_key():
43+
key = "test_key"
44+
showname = f"{key}: value"
45+
test_layer_field = LayerField(showname=showname)
46+
assert key == test_layer_field.showname_key
47+
48+
def test_layer_field_showname_binary():
49+
binary = b"\x124"
50+
test_layer_field = LayerField(value="1234")
51+
assert binary == test_layer_field.binary_value
52+
53+
def test_layer_field_str_int_value():
54+
str_int_value = "10"
55+
int_value = 10
56+
test_layer_field = LayerField(value=str_int_value)
57+
assert test_layer_field.int_value == int_value
58+
59+
def test_layer_field_hex_value():
60+
test_int_value = "0x75BCD15"
61+
expected_value = 123456789
62+
test_layer_field = LayerField(value=test_int_value)
63+
asserttest_layer_field.hex_value == expected_value
64+
65+
# Test Data - Layer Fields Container
66+
test_layer_field = LayerField(name="test_field", value={"test": "value"})
67+
68+
@pytest.fixture
69+
def layer_fields_container():
70+
return LayerFieldsContainer(test_layer_field)
71+
72+
# Unit Tests - Layer Fields Container
73+
def test_layer_fields_container_adds_single_field(layer_fields_container):
74+
new_field = LayerField(name="new_field", value={"new_test": "new_test_value"})
75+
layer_fields_container.add_field(new_field)
76+
fields = layer_fields_container.all_fields
77+
assert fields == [test_layer_field, new_field]
78+
79+
def test_layer_fields_container_returns_all_fields(layer_fields_container):
80+
fields = layer_fields_container.all_fields
81+
assert fields == [test_layer_field]
82+
83+
def test_layer_fields_container_gets_main_field(layer_fields_container):
84+
main_field = layer_fields_container.main_field
85+
assert main_field == test_layer_field
86+
87+
def test_layer_fields_container_gets_alternate_fields(layer_fields_container):
88+
alternate_field_1 = LayerField(name="alt_field_1", value={"alt_field_1": "alt_value_1"})
89+
alternate_field_2 = LayerField(name="alt_field_2", value={"alt_field_2": "alt_value_2"})
90+
layer_fields_container.add_field(alternate_field_1)
91+
layer_fields_container.add_field(alternate_field_2)
92+
alternate_fields = layer_fields_container.alternate_fields
93+
assert alternate_fields == [alternate_field_1, alternate_field_2]

0 commit comments

Comments
 (0)