|
| 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