1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-10-08 23:22:21 +02:00

fix net_localgroup tests

This commit is contained in:
Kelly Brazil
2025-09-08 14:54:45 -07:00
parent 51e4a476ba
commit 61793bba31
2 changed files with 161 additions and 216 deletions

View File

@@ -1,55 +1,179 @@
import json
import os
import unittest
import jc.parsers.ipconfig
import jc.parsers.net_localgroup
import json
from typing import Dict
from jc.parsers.net_localgroup import parse
THIS_DIR = os.path.dirname(os.path.abspath(__file__))
class MyTests(unittest.TestCase):
test_files = [
"tests/fixtures/windows/windows-xp/net_localgroup",
"tests/fixtures/windows/windows-xp/net_localgroup.administrators",
"tests/fixtures/windows/windows-7/net_localgroup",
"tests/fixtures/windows/windows-7/net_localgroup.administrators",
"tests/fixtures/windows/windows-2008/net_localgroup",
"tests/fixtures/windows/windows-2008/net_localgroup.administrators",
"tests/fixtures/windows/windows-2016/net_localgroup",
"tests/fixtures/windows/windows-2016/net_localgroup.administrators",
"tests/fixtures/windows/windows-10/net_localgroup",
"tests/fixtures/windows/windows-10/net_localgroup.administrators",
"tests/fixtures/windows/windows-11/net_localgroup",
"tests/fixtures/windows/windows-11/net_localgroup.administrators"
]
f_in: Dict = {}
f_json: Dict = {}
def setUp(self):
for tf in MyTests.test_files:
in_file = os.path.join(THIS_DIR, os.pardir, f"{tf}.out")
out_file = os.path.join(THIS_DIR, os.pardir, f"{tf}.json")
@classmethod
def setUpClass(cls):
fixtures = {
'windows_xp_net_localgroup': (
'fixtures/windows/windows-xp/net_localgroup.out',
'fixtures/windows/windows-xp/net_localgroup.json'),
'windows_xp_net_localgroup_administrators': (
'fixtures/windows/windows-xp/net_localgroup.administrators.out',
'fixtures/windows/windows-xp/net_localgroup.administrators.json'),
'windows_7_net_localgroup': (
'fixtures/windows/windows-7/net_localgroup.out',
'fixtures/windows/windows-7/net_localgroup.json'),
'windows_7_net_localgroup_administrators': (
'fixtures/windows/windows-7/net_localgroup.administrators.out',
'fixtures/windows/windows-7/net_localgroup.administrators.json'),
'windows_2008_net_localgroup': (
'fixtures/windows/windows-2008/net_localgroup.out',
'fixtures/windows/windows-2008/net_localgroup.json'),
'windows_2008_net_localgroup_administrators': (
'fixtures/windows/windows-2008/net_localgroup.administrators.out',
'fixtures/windows/windows-2008/net_localgroup.administrators.json'),
'windows_2016_net_localgroup': (
'fixtures/windows/windows-2016/net_localgroup.out',
'fixtures/windows/windows-2016/net_localgroup.json'),
'windows_2016_net_localgroup_administrators': (
'fixtures/windows/windows-2016/net_localgroup.administrators.out',
'fixtures/windows/windows-2016/net_localgroup.administrators.json'),
'windows_10_net_localgroup': (
'fixtures/windows/windows-10/net_localgroup.out',
'fixtures/windows/windows-10/net_localgroup.json'),
'windows_10_net_localgroup_administrators': (
'fixtures/windows/windows-10/net_localgroup.administrators.out',
'fixtures/windows/windows-10/net_localgroup.administrators.json'),
'windows_11_net_localgroup': (
'fixtures/windows/windows-11/net_localgroup.out',
'fixtures/windows/windows-11/net_localgroup.json'),
'windows_11_net_localgroup_administrators': (
'fixtures/windows/windows-11/net_localgroup.administrators.out',
'fixtures/windows/windows-11/net_localgroup.administrators.json'),
}
with open(in_file, "r", encoding="utf-8") as f:
setattr(self, self.varName(tf), f.read())
with open(out_file, "r", encoding="utf-8") as f:
setattr(self, self.varName(tf) + "_json", json.loads(f.read()))
for file, filepaths in fixtures.items():
with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \
open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b:
cls.f_in[file] = a.read()
cls.f_json[file] = json.loads(b.read())
def varName(self, path):
return (
path.replace("tests/fixtures/windows", "")
.replace("-", "_")
.replace("/", "_")
def test_net_localgroup_nodata(self):
"""
Test 'net_localgroup' with no data
"""
self.assertEqual(parse('', quiet=True), {})
def test_net_localgroup_windows_xp(self):
"""
Test 'net_localgroup' on Windows XP
"""
self.assertEqual(
parse(self.f_in['windows_xp_net_localgroup'], quiet=True),
self.f_json['windows_xp_net_localgroup']
)
def test_windows_net_localgroup(self):
def test_net_localgroup_administrators_windows_xp(self):
"""
Test a sample Windows "net localgroup" command output
Test 'net_localgroup' administrators on Windows XP
"""
for tf in MyTests.test_files:
in_var = getattr(self, self.varName(tf))
out_var = getattr(self, self.varName(tf) + "_json")
self.assertEqual(
parse(self.f_in['windows_xp_net_localgroup_administrators'], quiet=True),
self.f_json['windows_xp_net_localgroup_administrators']
)
self.assertEqual(jc.parsers.net_localgroup.parse(in_var, quiet=True), out_var)
def test_net_localgroup_windows_7(self):
"""
Test 'net_localgroup' on Windows 7
"""
self.assertEqual(
parse(self.f_in['windows_7_net_localgroup'], quiet=True),
self.f_json['windows_7_net_localgroup']
)
def test_net_localgroup_administrators_windows_7(self):
"""
Test 'net_localgroup' administrators on Windows 7
"""
self.assertEqual(
parse(self.f_in['windows_7_net_localgroup_administrators'], quiet=True),
self.f_json['windows_7_net_localgroup_administrators']
)
def test_net_localgroup_windows_2008(self):
"""
Test 'net_localgroup' on Windows 2008
"""
self.assertEqual(
parse(self.f_in['windows_2008_net_localgroup'], quiet=True),
self.f_json['windows_2008_net_localgroup']
)
def test_net_localgroup_administrators_windows_2008(self):
"""
Test 'net_localgroup' administrators on Windows 2008
"""
self.assertEqual(
parse(self.f_in['windows_2008_net_localgroup_administrators'], quiet=True),
self.f_json['windows_2008_net_localgroup_administrators']
)
def test_net_localgroup_windows_2016(self):
"""
Test 'net_localgroup' on Windows 2016
"""
self.assertEqual(
parse(self.f_in['windows_2016_net_localgroup'], quiet=True),
self.f_json['windows_2016_net_localgroup']
)
def test_net_localgroup_administrators_windows_2016(self):
"""
Test 'net_localgroup' administrators on Windows 2016
"""
self.assertEqual(
parse(self.f_in['windows_2016_net_localgroup_administrators'], quiet=True),
self.f_json['windows_2016_net_localgroup_administrators']
)
def test_net_localgroup_windows_10(self):
"""
Test 'net_localgroup' on Windows 10
"""
self.assertEqual(
parse(self.f_in['windows_10_net_localgroup'], quiet=True),
self.f_json['windows_10_net_localgroup']
)
def test_net_localgroup_administrators_windows_10(self):
"""
Test 'net_localgroup' administrators on Windows 10
"""
self.assertEqual(
parse(self.f_in['windows_10_net_localgroup_administrators'], quiet=True),
self.f_json['windows_10_net_localgroup_administrators']
)
def test_net_localgroup_windows_11(self):
"""
Test 'net_localgroup' on Windows 11
"""
self.assertEqual(
parse(self.f_in['windows_11_net_localgroup'], quiet=True),
self.f_json['windows_11_net_localgroup']
)
def test_net_localgroup_administrators_windows_11(self):
"""
Test 'net_localgroup' administrators on Windows 11
"""
self.assertEqual(
parse(self.f_in['windows_11_net_localgroup_administrators'], quiet=True),
self.f_json['windows_11_net_localgroup_administrators']
)
if __name__ == "__main__":
if __name__ == '__main__':
unittest.main()

View File

@@ -1,179 +0,0 @@
import os
import unittest
import json
from typing import Dict
from jc.parsers.net_localgroup import parse
THIS_DIR = os.path.dirname(os.path.abspath(__file__))
class MyTests(unittest.TestCase):
f_in: Dict = {}
f_json: Dict = {}
@classmethod
def setUpClass(cls):
fixtures = {
'windows_xp_net_localgroup': (
'fixtures/windows/windows-xp/net_localgroup.out',
'fixtures/windows/windows-xp/net_localgroup.json'),
'windows_xp_net_localgroup_administrators': (
'fixtures/windows/windows-xp/net_localgroup.administrators.out',
'fixtures/windows/windows-xp/net_localgroup.administrators.json'),
'windows_7_net_localgroup': (
'fixtures/windows/windows-7/net_localgroup.out',
'fixtures/windows/windows-7/net_localgroup.json'),
'windows_7_net_localgroup_administrators': (
'fixtures/windows/windows-7/net_localgroup.administrators.out',
'fixtures/windows/windows-7/net_localgroup.administrators.json'),
'windows_2008_net_localgroup': (
'fixtures/windows/windows-2008/net_localgroup.out',
'fixtures/windows/windows-2008/net_localgroup.json'),
'windows_2008_net_localgroup_administrators': (
'fixtures/windows/windows-2008/net_localgroup.administrators.out',
'fixtures/windows/windows-2008/net_localgroup.administrators.json'),
'windows_2016_net_localgroup': (
'fixtures/windows/windows-2016/net_localgroup.out',
'fixtures/windows/windows-2016/net_localgroup.json'),
'windows_2016_net_localgroup_administrators': (
'fixtures/windows/windows-2016/net_localgroup.administrators.out',
'fixtures/windows/windows-2016/net_localgroup.administrators.json'),
'windows_10_net_localgroup': (
'fixtures/windows/windows-10/net_localgroup.out',
'fixtures/windows/windows-10/net_localgroup.json'),
'windows_10_net_localgroup_administrators': (
'fixtures/windows/windows-10/net_localgroup.administrators.out',
'fixtures/windows/windows-10/net_localgroup.administrators.json'),
'windows_11_net_localgroup': (
'fixtures/windows/windows-11/net_localgroup.out',
'fixtures/windows/windows-11/net_localgroup.json'),
'windows_11_net_localgroup_administrators': (
'fixtures/windows/windows-11/net_localgroup.administrators.out',
'fixtures/windows/windows-11/net_localgroup.administrators.json'),
}
for file, filepaths in fixtures.items():
with open(os.path.join(THIS_DIR, filepaths[0]), 'r', encoding='utf-8') as a, \
open(os.path.join(THIS_DIR, filepaths[1]), 'r', encoding='utf-8') as b:
cls.f_in[file] = a.read()
cls.f_json[file] = json.loads(b.read())
def test_net_localgroup_nodata(self):
"""
Test 'net_localgroup' with no data
"""
self.assertEqual(parse('', quiet=True), {})
def test_net_localgroup_windows_xp(self):
"""
Test 'net_localgroup' on Windows XP
"""
self.assertEqual(
parse(self.f_in['windows_xp_net_localgroup'], quiet=True),
self.f_json['windows_xp_net_localgroup']
)
def test_net_localgroup_administrators_windows_xp(self):
"""
Test 'net_localgroup' administrators on Windows XP
"""
self.assertEqual(
parse(self.f_in['windows_xp_net_localgroup_administrators'], quiet=True),
self.f_json['windows_xp_net_localgroup_administrators']
)
def test_net_localgroup_windows_7(self):
"""
Test 'net_localgroup' on Windows 7
"""
self.assertEqual(
parse(self.f_in['windows_7_net_localgroup'], quiet=True),
self.f_json['windows_7_net_localgroup']
)
def test_net_localgroup_administrators_windows_7(self):
"""
Test 'net_localgroup' administrators on Windows 7
"""
self.assertEqual(
parse(self.f_in['windows_7_net_localgroup_administrators'], quiet=True),
self.f_json['windows_7_net_localgroup_administrators']
)
def test_net_localgroup_windows_2008(self):
"""
Test 'net_localgroup' on Windows 2008
"""
self.assertEqual(
parse(self.f_in['windows_2008_net_localgroup'], quiet=True),
self.f_json['windows_2008_net_localgroup']
)
def test_net_localgroup_administrators_windows_2008(self):
"""
Test 'net_localgroup' administrators on Windows 2008
"""
self.assertEqual(
parse(self.f_in['windows_2008_net_localgroup_administrators'], quiet=True),
self.f_json['windows_2008_net_localgroup_administrators']
)
def test_net_localgroup_windows_2016(self):
"""
Test 'net_localgroup' on Windows 2016
"""
self.assertEqual(
parse(self.f_in['windows_2016_net_localgroup'], quiet=True),
self.f_json['windows_2016_net_localgroup']
)
def test_net_localgroup_administrators_windows_2016(self):
"""
Test 'net_localgroup' administrators on Windows 2016
"""
self.assertEqual(
parse(self.f_in['windows_2016_net_localgroup_administrators'], quiet=True),
self.f_json['windows_2016_net_localgroup_administrators']
)
def test_net_localgroup_windows_10(self):
"""
Test 'net_localgroup' on Windows 10
"""
self.assertEqual(
parse(self.f_in['windows_10_net_localgroup'], quiet=True),
self.f_json['windows_10_net_localgroup']
)
def test_net_localgroup_administrators_windows_10(self):
"""
Test 'net_localgroup' administrators on Windows 10
"""
self.assertEqual(
parse(self.f_in['windows_10_net_localgroup_administrators'], quiet=True),
self.f_json['windows_10_net_localgroup_administrators']
)
def test_net_localgroup_windows_11(self):
"""
Test 'net_localgroup' on Windows 11
"""
self.assertEqual(
parse(self.f_in['windows_11_net_localgroup'], quiet=True),
self.f_json['windows_11_net_localgroup']
)
def test_net_localgroup_administrators_windows_11(self):
"""
Test 'net_localgroup' administrators on Windows 11
"""
self.assertEqual(
parse(self.f_in['windows_11_net_localgroup_administrators'], quiet=True),
self.f_json['windows_11_net_localgroup_administrators']
)
if __name__ == '__main__':
unittest.main()