|
| 1 | +#!/usr/bin/env python |
| 2 | + |
| 3 | +from libnmap.objects.os import CPE |
| 4 | +import unittest |
| 5 | + |
| 6 | + |
| 7 | +class TestNmapFP(unittest.TestCase): |
| 8 | + def setUp(self): |
| 9 | + self.cpelist = ['cpe:/a:apache:http_server:2.2.22', |
| 10 | + 'cpe:/a:heimdal:kerberos', |
| 11 | + 'cpe:/a:openbsd:openssh:5.9p1', |
| 12 | + 'cpe:/o:apple:iphone_os:5', |
| 13 | + 'cpe:/o:apple:mac_os_x:10.8', |
| 14 | + 'cpe:/o:apple:mac_os_x', |
| 15 | + 'cpe:/o:linux:linux_kernel:2.6.13', |
| 16 | + 'cpe:/o:linux:linux_kernel', |
| 17 | + 'cpe:/o:microsoft:windows_7', |
| 18 | + 'cpe:/o:microsoft:windows_7::-:professional', |
| 19 | + 'cpe:/o:microsoft:windows_7::sp1', |
| 20 | + 'cpe:/o:microsoft:windows', |
| 21 | + 'cpe:/o:microsoft:windows_server_2008::beta3', |
| 22 | + 'cpe:/o:microsoft:windows_server_2008', |
| 23 | + 'cpe:/o:microsoft:windows_server_2008::sp1', |
| 24 | + 'cpe:/o:microsoft:windows_vista::-', |
| 25 | + 'cpe:/o:microsoft:windows_vista::sp1', |
| 26 | + 'cpe:/o:microsoft:windows_vista::sp2'] |
| 27 | + |
| 28 | + def test_cpe(self): |
| 29 | + apa = CPE(self.cpelist[0]) |
| 30 | + |
| 31 | + self.assertTrue(apa.is_application()) |
| 32 | + self.assertFalse(apa.is_hardware()) |
| 33 | + self.assertFalse(apa.is_operating_system()) |
| 34 | + |
| 35 | + |
| 36 | + win = CPE(self.cpelist[12]) |
| 37 | + self.assertEqual(win.get_vendor(), 'microsoft') |
| 38 | + self.assertEqual(win.get_product(), 'windows_server_2008') |
| 39 | + self.assertEqual(win.get_version(), '') |
| 40 | + self.assertEqual(win.get_update(), 'beta3') |
| 41 | + self.assertEqual(win.get_edition(), '') |
| 42 | + self.assertEqual(win.get_language(), '') |
| 43 | + |
| 44 | + def test_full_cpe(self): |
| 45 | + cpestr = 'cpe:/a:mozilla:firefox:2.0::osx:es-es' |
| 46 | + resdict = { 'part':'/a', 'vendor':"mozilla", 'product':"firefox", 'version':"2.0", 'update':'', 'edition':"osx", 'language':'es-es' } |
| 47 | + ocpe = CPE(cpestr) |
| 48 | + objdict = {'part': ocpe.get_part(), |
| 49 | + 'vendor': ocpe.get_vendor(), |
| 50 | + 'product': ocpe.get_product(), |
| 51 | + 'version': ocpe.get_version(), |
| 52 | + 'update': ocpe.get_update(), |
| 53 | + 'language': ocpe.get_language(), |
| 54 | + 'edition': ocpe.get_edition() |
| 55 | + } |
| 56 | + self.assertEqual(objdict, resdict) |
| 57 | + |
| 58 | +if __name__ == '__main__': |
| 59 | + test_suite = ['test_cpe', 'test_full_cpe'] |
| 60 | + suite = unittest.TestSuite(map(TestNmapFP, test_suite)) |
| 61 | + test_result = unittest.TextTestRunner(verbosity=2).run(suite) |
0 commit comments