| 106 | assert repr(s) == '<Software(product=OpenSSH, version=5.9, patch=CASPUR)>' |
| 107 | |
| 108 | def test_dropbear_software(self): |
| 109 | ps = lambda x: self.software.parse(self.banner.parse(x)) # noqa |
| 110 | # common |
| 111 | s = ps('SSH-2.0-dropbear_2016.74') |
| 112 | assert s.vendor is None |
| 113 | assert s.product == 'Dropbear SSH' |
| 114 | assert s.version == '2016.74' |
| 115 | assert s.patch is None |
| 116 | assert s.os is None |
| 117 | assert str(s) == 'Dropbear SSH 2016.74' |
| 118 | assert str(s) == s.display() |
| 119 | assert s.display(True) == str(s) |
| 120 | assert s.display(False) == str(s) |
| 121 | assert repr(s) == '<Software(product=Dropbear SSH, version=2016.74)>' |
| 122 | # common, patch |
| 123 | s = ps('SSH-2.0-dropbear_0.44test4') |
| 124 | assert s.vendor is None |
| 125 | assert s.product == 'Dropbear SSH' |
| 126 | assert s.version == '0.44' |
| 127 | assert s.patch == 'test4' |
| 128 | assert s.os is None |
| 129 | assert str(s) == 'Dropbear SSH 0.44 (test4)' |
| 130 | assert str(s) == s.display() |
| 131 | assert s.display(True) == str(s) |
| 132 | assert s.display(False) == 'Dropbear SSH 0.44' |
| 133 | assert repr(s) == '<Software(product=Dropbear SSH, version=0.44, patch=test4)>' |
| 134 | # patch prefix with dash |
| 135 | s = ps('SSH-2.0-dropbear_0.44-Freesco-p49') |
| 136 | assert s.vendor is None |
| 137 | assert s.product == 'Dropbear SSH' |
| 138 | assert s.version == '0.44' |
| 139 | assert s.patch == 'Freesco-p49' |
| 140 | assert s.os is None |
| 141 | assert str(s) == 'Dropbear SSH 0.44 (Freesco-p49)' |
| 142 | assert str(s) == s.display() |
| 143 | assert s.display(True) == str(s) |
| 144 | assert s.display(False) == 'Dropbear SSH 0.44' |
| 145 | assert repr(s) == '<Software(product=Dropbear SSH, version=0.44, patch=Freesco-p49)>' |
| 146 | # patch prefix with underline |
| 147 | s = ps('SSH-2.0-dropbear_2014.66_agbn_1') |
| 148 | assert s.vendor is None |
| 149 | assert s.product == 'Dropbear SSH' |
| 150 | assert s.version == '2014.66' |
| 151 | assert s.patch == 'agbn_1' |
| 152 | assert s.os is None |
| 153 | assert str(s) == 'Dropbear SSH 2014.66 (agbn_1)' |
| 154 | assert str(s) == s.display() |
| 155 | assert s.display(True) == str(s) |
| 156 | assert s.display(False) == 'Dropbear SSH 2014.66' |
| 157 | assert repr(s) == '<Software(product=Dropbear SSH, version=2014.66, patch=agbn_1)>' |
| 158 | |
| 159 | def test_libssh_software(self): |
| 160 | ps = lambda x: self.software.parse(self.banner.parse(x)) # noqa |