| 18 | assert ps('SSH-2.0-BetaMegaServer 0.0.1') is None |
| 19 | |
| 20 | def test_openssh_software(self): |
| 21 | # pylint: disable=too-many-statements |
| 22 | ps = lambda x: self.software.parse(self.banner.parse(x)) # noqa |
| 23 | # common |
| 24 | s = ps('SSH-2.0-OpenSSH_7.3') |
| 25 | assert s.vendor is None |
| 26 | assert s.product == 'OpenSSH' |
| 27 | assert s.version == '7.3' |
| 28 | assert s.patch is None |
| 29 | assert s.os is None |
| 30 | assert str(s) == 'OpenSSH 7.3' |
| 31 | assert str(s) == s.display() |
| 32 | assert s.display(True) == str(s) |
| 33 | assert s.display(False) == str(s) |
| 34 | assert repr(s) == '<Software(product=OpenSSH, version=7.3)>' |
| 35 | # common, portable |
| 36 | s = ps('SSH-2.0-OpenSSH_7.2p1') |
| 37 | assert s.vendor is None |
| 38 | assert s.product == 'OpenSSH' |
| 39 | assert s.version == '7.2' |
| 40 | assert s.patch == 'p1' |
| 41 | assert s.os is None |
| 42 | assert str(s) == 'OpenSSH 7.2p1' |
| 43 | assert str(s) == s.display() |
| 44 | assert s.display(True) == str(s) |
| 45 | assert s.display(False) == 'OpenSSH 7.2' |
| 46 | assert repr(s) == '<Software(product=OpenSSH, version=7.2, patch=p1)>' |
| 47 | # dot instead of underline |
| 48 | s = ps('SSH-2.0-OpenSSH.6.6') |
| 49 | assert s.vendor is None |
| 50 | assert s.product == 'OpenSSH' |
| 51 | assert s.version == '6.6' |
| 52 | assert s.patch is None |
| 53 | assert s.os is None |
| 54 | assert str(s) == 'OpenSSH 6.6' |
| 55 | assert str(s) == s.display() |
| 56 | assert s.display(True) == str(s) |
| 57 | assert s.display(False) == str(s) |
| 58 | assert repr(s) == '<Software(product=OpenSSH, version=6.6)>' |
| 59 | # dash instead of underline |
| 60 | s = ps('SSH-2.0-OpenSSH-3.9p1') |
| 61 | assert s.vendor is None |
| 62 | assert s.product == 'OpenSSH' |
| 63 | assert s.version == '3.9' |
| 64 | assert s.patch == 'p1' |
| 65 | assert s.os is None |
| 66 | assert str(s) == 'OpenSSH 3.9p1' |
| 67 | assert str(s) == s.display() |
| 68 | assert s.display(True) == str(s) |
| 69 | assert s.display(False) == 'OpenSSH 3.9' |
| 70 | assert repr(s) == '<Software(product=OpenSSH, version=3.9, patch=p1)>' |
| 71 | # patch prefix with dash |
| 72 | s = ps('SSH-2.0-OpenSSH_7.2-hpn14v5') |
| 73 | assert s.vendor is None |
| 74 | assert s.product == 'OpenSSH' |
| 75 | assert s.version == '7.2' |
| 76 | assert s.patch == 'hpn14v5' |
| 77 | assert s.os is None |