Skip to content

Commit b1b21bc

Browse files
committed
Add tests for MibScalarInstance to validate noSuchInstance behavior
1 parent b49bd11 commit b1b21bc

1 file changed

Lines changed: 53 additions & 0 deletions

File tree

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import pytest
2+
3+
from pysnmp.proto.api import v2c
4+
from pysnmp.smi.builder import MibBuilder
5+
from pysnmp.smi.error import NoSuchInstanceError
6+
7+
8+
def _make_mib_scalar_instance(syntax):
9+
mib_builder = MibBuilder()
10+
mib_builder.loadTexts = True
11+
_, MibScalarInstance = mib_builder.import_symbols(
12+
"SNMPv2-SMI", "MibScalar", "MibScalarInstance"
13+
)
14+
return MibScalarInstance((1, 3, 6, 1, 2, 1, 1, 1), (0,), syntax)
15+
16+
17+
def test_schema_only_scalar_instance_read_get_raises_no_such_instance():
18+
scalar = _make_mib_scalar_instance(v2c.Integer())
19+
20+
assert scalar.syntax.isValue is False
21+
22+
with pytest.raises(NoSuchInstanceError):
23+
scalar.readGet((scalar.name, None))
24+
25+
26+
def test_schema_only_scalar_instance_read_test_next_raises_no_such_instance():
27+
scalar = _make_mib_scalar_instance(v2c.Integer())
28+
29+
assert scalar.syntax.isValue is False
30+
31+
with pytest.raises(NoSuchInstanceError):
32+
scalar.readTestNext((scalar.name, None), oName=(1, 3, 6, 1, 2, 1, 1, 0))
33+
34+
35+
def test_schema_only_scalar_instance_read_get_next_raises_no_such_instance():
36+
scalar = _make_mib_scalar_instance(v2c.Integer())
37+
38+
assert scalar.syntax.isValue is False
39+
40+
with pytest.raises(NoSuchInstanceError):
41+
scalar.readGetNext((scalar.name, None), oName=(1, 3, 6, 1, 2, 1, 1, 0))
42+
43+
44+
def test_value_scalar_instance_read_get_returns_value():
45+
scalar = _make_mib_scalar_instance(v2c.Integer(5))
46+
47+
assert scalar.syntax.isValue is True
48+
49+
name, value = scalar.readGet((scalar.name, None))
50+
51+
assert name == scalar.name
52+
assert value.isValue is True
53+
assert int(value) == 5

0 commit comments

Comments
 (0)