Skip to content

Commit 61793bb

Browse files
fix net_localgroup tests
1 parent 51e4a47 commit 61793bb

File tree

2 files changed

+171
-226
lines changed

2 files changed

+171
-226
lines changed

tests/test_net_localgroup.py

Lines changed: 171 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,179 @@
1-
import json
21
import os
32
import unittest
4-
import jc.parsers.ipconfig
5-
import jc.parsers.net_localgroup
3+
import json
4+
from typing import Dict
5+
from jc.parsers.net_localgroup import parse
66

77
THIS_DIR = os.path.dirname(os.path.abspath(__file__))
88

99

1010
class MyTests(unittest.TestCase):
11-
test_files = [
12-
"tests/fixtures/windows/windows-xp/net_localgroup",
13-
"tests/fixtures/windows/windows-xp/net_localgroup.administrators",
14-
"tests/fixtures/windows/windows-7/net_localgroup",
15-
"tests/fixtures/windows/windows-7/net_localgroup.administrators",
16-
"tests/fixtures/windows/windows-2008/net_localgroup",
17-
"tests/fixtures/windows/windows-2008/net_localgroup.administrators",
18-
"tests/fixtures/windows/windows-2016/net_localgroup",
19-
"tests/fixtures/windows/windows-2016/net_localgroup.administrators",
20-
"tests/fixtures/windows/windows-10/net_localgroup",
21-
"tests/fixtures/windows/windows-10/net_localgroup.administrators",
22-
"tests/fixtures/windows/windows-11/net_localgroup",
23-
"tests/fixtures/windows/windows-11/net_localgroup.administrators"
24-
]
25-
26-
def setUp(self):
27-
for tf in MyTests.test_files:
28-
in_file = os.path.join(THIS_DIR, os.pardir, f"{tf}.out")
29-
out_file = os.path.join(THIS_DIR, os.pardir, f"{tf}.json")
30-
31-
with open(in_file, "r", encoding="utf-8") as f:
32-
setattr(self, self.varName(tf), f.read())
33-
with open(out_file, "r", encoding="utf-8") as f:
34-
setattr(self, self.varName(tf) + "_json", json.loads(f.read()))
35-
36-
def varName(self, path):
37-
return (
38-
path.replace("tests/fixtures/windows", "")
39-
.replace("-", "_")
40-
.replace("/", "_")
41-
)
42-
43-
def test_windows_net_localgroup(self):
44-
"""
45-
Test a sample Windows "net localgroup" command output
46-
"""
47-
for tf in MyTests.test_files:
48-
in_var = getattr(self, self.varName(tf))
49-
out_var = getattr(self, self.varName(tf) + "_json")
50-
51-
self.assertEqual(jc.parsers.net_localgroup.parse(in_var, quiet=True), out_var)
52-
53-
54-
if __name__ == "__main__":
11+
f_in: Dict = {}
12+
f_json: Dict = {}
13+
14+
@classmethod
15+
def setUpClass(cls):
16+
fixtures = {
17+
'windows_xp_net_localgroup': (
18+
'fixtures/windows/windows-xp/net_localgroup.out',
19+
'fixtures/windows/windows-xp/net_localgroup.json'),
20+
'windows_xp_net_localgroup_administrators': (
21+
'fixtures/windows/windows-xp/net_localgroup.administrators.out',
22+
'fixtures/windows/windows-xp/net_localgroup.administrators.json'),
23+
'windows_7_net_localgroup': (
24+
'fixtures/windows/windows-7/net_localgroup.out',
25+
'fixtures/windows/windows-7/net_localgroup.json'),
26+
'windows_7_net_localgroup_administrators': (
27+
'fixtures/windows/windows-7/net_localgroup.administrators.out',
28+
'fixtures/windows/windows-7/net_localgroup.administrators.json'),
29+
'windows_2008_net_localgroup': (
30+
'fixtures/windows/windows-2008/net_localgroup.out',
31+
'fixtures/windows/windows-2008/net_localgroup.json'),
32+
'windows_2008_net_localgroup_administrators': (
33+
'fixtures/windows/windows-2008/net_localgroup.administrators.out',
34+
'fixtures/windows/windows-2008/net_localgroup.administrators.json'),
35+
'windows_2016_net_localgroup': (
36+
'fixtures/windows/windows-2016/net_localgroup.out',
37+
'fixtures/windows/windows-2016/net_localgroup.json'),
38+
'windows_2016_net_localgroup_administrators': (
39+
'fixtures/windows/windows-2016/net_localgroup.administrators.out',
40+
'fixtures/windows/windows-2016/net_localgroup.administrators.json'),
41+
'windows_10_net_localgroup': (
42+
'fixtures/windows/windows-10/net_localgroup.out',
43+
'fixtures/windows/windows-10/net_localgroup.json'),
44+
'windows_10_net_localgroup_administrators': (
45+
'fixtures/windows/windows-10/net_localgroup.administrators.out',
46+
'fixtures/windows/windows-10/net_localgroup.administrators.json'),
47+
'windows_11_net_localgroup': (
48+
'fixtures/windows/windows-11/net_localgroup.out',
49+
'fixtures/windows/windows-11/net_localgroup.json'),
50+
'windows_11_net_localgroup_administrators': (
51+
'fixtures/windows/windows-11/net_localgroup.administrators.out',
52+
'fixtures/windows/windows-11/net_localgroup.administrators.json'),
53+
}
54+
55+
for file, filepaths in fixtures.items():
56+
with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \
57+
open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b:
58+
cls.f_in[file] = a.read()
59+
cls.f_json[file] = json.loads(b.read())
60+
61+
62+
def test_net_localgroup_nodata(self):
63+
"""
64+
Test 'net_localgroup' with no data
65+
"""
66+
self.assertEqual(parse('', quiet=True), {})
67+
68+
69+
def test_net_localgroup_windows_xp(self):
70+
"""
71+
Test 'net_localgroup' on Windows XP
72+
"""
73+
self.assertEqual(
74+
parse(self.f_in['windows_xp_net_localgroup'], quiet=True),
75+
self.f_json['windows_xp_net_localgroup']
76+
)
77+
78+
def test_net_localgroup_administrators_windows_xp(self):
79+
"""
80+
Test 'net_localgroup' administrators on Windows XP
81+
"""
82+
self.assertEqual(
83+
parse(self.f_in['windows_xp_net_localgroup_administrators'], quiet=True),
84+
self.f_json['windows_xp_net_localgroup_administrators']
85+
)
86+
87+
def test_net_localgroup_windows_7(self):
88+
"""
89+
Test 'net_localgroup' on Windows 7
90+
"""
91+
self.assertEqual(
92+
parse(self.f_in['windows_7_net_localgroup'], quiet=True),
93+
self.f_json['windows_7_net_localgroup']
94+
)
95+
96+
def test_net_localgroup_administrators_windows_7(self):
97+
"""
98+
Test 'net_localgroup' administrators on Windows 7
99+
"""
100+
self.assertEqual(
101+
parse(self.f_in['windows_7_net_localgroup_administrators'], quiet=True),
102+
self.f_json['windows_7_net_localgroup_administrators']
103+
)
104+
105+
def test_net_localgroup_windows_2008(self):
106+
"""
107+
Test 'net_localgroup' on Windows 2008
108+
"""
109+
self.assertEqual(
110+
parse(self.f_in['windows_2008_net_localgroup'], quiet=True),
111+
self.f_json['windows_2008_net_localgroup']
112+
)
113+
114+
def test_net_localgroup_administrators_windows_2008(self):
115+
"""
116+
Test 'net_localgroup' administrators on Windows 2008
117+
"""
118+
self.assertEqual(
119+
parse(self.f_in['windows_2008_net_localgroup_administrators'], quiet=True),
120+
self.f_json['windows_2008_net_localgroup_administrators']
121+
)
122+
123+
def test_net_localgroup_windows_2016(self):
124+
"""
125+
Test 'net_localgroup' on Windows 2016
126+
"""
127+
self.assertEqual(
128+
parse(self.f_in['windows_2016_net_localgroup'], quiet=True),
129+
self.f_json['windows_2016_net_localgroup']
130+
)
131+
132+
def test_net_localgroup_administrators_windows_2016(self):
133+
"""
134+
Test 'net_localgroup' administrators on Windows 2016
135+
"""
136+
self.assertEqual(
137+
parse(self.f_in['windows_2016_net_localgroup_administrators'], quiet=True),
138+
self.f_json['windows_2016_net_localgroup_administrators']
139+
)
140+
141+
def test_net_localgroup_windows_10(self):
142+
"""
143+
Test 'net_localgroup' on Windows 10
144+
"""
145+
self.assertEqual(
146+
parse(self.f_in['windows_10_net_localgroup'], quiet=True),
147+
self.f_json['windows_10_net_localgroup']
148+
)
149+
150+
def test_net_localgroup_administrators_windows_10(self):
151+
"""
152+
Test 'net_localgroup' administrators on Windows 10
153+
"""
154+
self.assertEqual(
155+
parse(self.f_in['windows_10_net_localgroup_administrators'], quiet=True),
156+
self.f_json['windows_10_net_localgroup_administrators']
157+
)
158+
159+
def test_net_localgroup_windows_11(self):
160+
"""
161+
Test 'net_localgroup' on Windows 11
162+
"""
163+
self.assertEqual(
164+
parse(self.f_in['windows_11_net_localgroup'], quiet=True),
165+
self.f_json['windows_11_net_localgroup']
166+
)
167+
168+
def test_net_localgroup_administrators_windows_11(self):
169+
"""
170+
Test 'net_localgroup' administrators on Windows 11
171+
"""
172+
self.assertEqual(
173+
parse(self.f_in['windows_11_net_localgroup_administrators'], quiet=True),
174+
self.f_json['windows_11_net_localgroup_administrators']
175+
)
176+
177+
178+
if __name__ == '__main__':
55179
unittest.main()

0 commit comments

Comments
 (0)