1# Copyright (c) 2016 RIPE NCC 2# 3# This program is free software: you can redistribute it and/or modify 4# it under the terms of the GNU General Public License as published by 5# the Free Software Foundation, either version 3 of the License, or 6# (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16from ripe.atlas.sagan import Result 17from ripe.atlas.sagan.ping import PingResult, Packet 18 19 20def test_ping_0(): 21 result = Result.get('{"avg":"58.042","dst_addr":"62.2.16.12","dup":"0","fw":0,"max":"58.272","min":"57.876","msm_id":1000192,"prb_id":677,"rcvd":"3","sent":"3","src_addr":"78.128.9.202","timestamp":1328019792,"type":"ping"}') 22 assert(result.af == 4) 23 assert(result.rtt_average == 58.042) 24 assert(result.rtt_median is None) 25 assert(result.destination_address == "62.2.16.12") 26 assert(result.destination_name is None) 27 assert(result.duplicates == 0) 28 assert(result.origin is None) 29 assert(result.firmware == 0) 30 assert(result.seconds_since_sync is None) 31 assert(result.rtt_max == 58.272) 32 assert(result.rtt_min == 57.876) 33 assert(result.measurement_id == 1000192) 34 assert(result.probe_id == 677) 35 assert(result.protocol is None) 36 assert(result.packets_received == 3) 37 assert(result.packets_sent == 3) 38 assert(result.packet_size is None) 39 assert(result.step is None) 40 assert(result.created.isoformat() == "2012-01-31T14:23:12+00:00") 41 assert(result.packets == []) 42 43 44def test_ping_1(): 45 result = Result.get('{"addr":"62.2.16.12","avg":124.572,"dup":0,"from":"194.85.27.7","fw":1,"max":125.44499999999999,"min":123.89400000000001,"msm_id":1000192,"name":"hsi.cablecom.ch","prb_id":165,"rcvd":3,"sent":3,"size":56,"timestamp":1340523908,"type":"ping"}') 46 assert(result.af == 4) 47 assert(result.rtt_average == 124.572) 48 assert(result.rtt_median is None) 49 assert(result.destination_address == "62.2.16.12") 50 assert(result.destination_name == "hsi.cablecom.ch") 51 assert(result.duplicates == 0) 52 assert(result.origin == "194.85.27.7") 53 assert(result.firmware == 1) 54 assert(result.seconds_since_sync is None) 55 assert(result.rtt_max == 125.445) 56 assert(result.rtt_min == 123.894) 57 assert(result.measurement_id == 1000192) 58 assert(result.probe_id == 165) 59 assert(result.protocol is None) 60 assert(result.packets_received == 3) 61 assert(result.packets_sent == 3) 62 assert(result.packet_size is None) 63 assert(result.step is None) 64 assert(result.created.isoformat() == "2012-06-24T07:45:08+00:00") 65 assert(result.packets == []) 66 67 68def test_ping_4460(): 69 result = Result.get('{"addr":"62.2.16.12","af":4,"avg":48.388333333333328,"dst_addr":"62.2.16.12","dst_name":"hsi.cablecom.ch","dup":0,"from":"188.194.234.136","fw":4460,"max":56.948999999999998,"min":43.869999999999997,"msm_id":1000192,"name":"hsi.cablecom.ch","prb_id":270,"proto":"ICMP","rcvd":3,"result":[{"rtt":43.869999999999997},{"rtt":56.948999999999998},{"rtt":44.345999999999997}],"sent":3,"size":20,"src_addr":"192.168.178.21","timestamp":1340524626,"ttl":52,"type":"ping"}') 70 assert(result.af == 4) 71 assert(result.rtt_average == 48.388) 72 assert(result.rtt_median == 44.346) 73 assert(result.destination_address == "62.2.16.12") 74 assert(result.destination_name == "hsi.cablecom.ch") 75 assert(result.duplicates == 0) 76 assert(result.origin == "188.194.234.136") 77 assert(result.firmware == 4460) 78 assert(result.seconds_since_sync is None) 79 assert(result.rtt_max == 56.949) 80 assert(result.rtt_min == 43.87) 81 assert(result.measurement_id == 1000192) 82 assert(result.probe_id == 270) 83 assert(result.protocol == PingResult.PROTOCOL_ICMP) 84 assert(result.packets_received == 3) 85 assert(result.packets_sent == 3) 86 assert(result.packet_size == 12) 87 assert(result.step is None) 88 assert(result.created.isoformat() == "2012-06-24T07:57:06+00:00") 89 assert(result.packets[0].rtt == 43.87) 90 assert(result.packets[1].rtt == 56.949) 91 assert(result.packets[2].rtt == 44.346) 92 assert(result.packets[0].ttl == 52) 93 assert(result.packets[1].ttl == 52) 94 assert(result.packets[2].ttl == 52) 95 assert(result.packets[0].dup is False) 96 assert(result.packets[1].dup is False) 97 assert(result.packets[2].dup is False) 98 assert(result.packets[0].source_address == "192.168.178.21") 99 assert(result.packets[1].source_address == "192.168.178.21") 100 assert(result.packets[2].source_address == "192.168.178.21") 101 102 103def test_ping_4470(): 104 result = Result.get('{"addr":"62.2.16.12","af":4,"avg":195.649,"dst_addr":"62.2.16.12","dst_name":"hsi.cablecom.ch","dup":0,"from":"194.85.27.7","fw":4470,"max":197.79300000000001,"min":193.059,"msm_id":1000192,"name":"hsi.cablecom.ch","prb_id":165,"proto":"ICMP","rcvd":3,"result":[{"rtt":196.095},{"rtt":197.79300000000001},{"rtt":193.059}],"sent":3,"size":20,"src_addr":"192.168.3.8","timestamp":1344514151,"ttl":46,"type":"ping"}') 105 assert(result.af == 4) 106 assert(result.rtt_average == 195.649) 107 assert(result.rtt_median == 196.095) 108 assert(result.destination_address == "62.2.16.12") 109 assert(result.destination_name == "hsi.cablecom.ch") 110 assert(result.duplicates == 0) 111 assert(result.origin == "194.85.27.7") 112 assert(result.firmware == 4470) 113 assert(result.seconds_since_sync is None) 114 assert(result.rtt_max == 197.793) 115 assert(result.rtt_min == 193.059) 116 assert(result.measurement_id == 1000192) 117 assert(result.probe_id == 165) 118 assert(result.protocol == PingResult.PROTOCOL_ICMP) 119 assert(result.packets_received == 3) 120 assert(result.packets_sent == 3) 121 assert(result.packet_size == 12) 122 assert(result.step is None) 123 assert(result.created.isoformat() == "2012-08-09T12:09:11+00:00") 124 assert(result.packets[0].rtt == 196.095) 125 assert(result.packets[1].rtt == 197.793) 126 assert(result.packets[2].rtt == 193.059) 127 assert(result.packets[0].ttl == 46) 128 assert(result.packets[1].ttl == 46) 129 assert(result.packets[2].ttl == 46) 130 assert(result.packets[0].dup is False) 131 assert(result.packets[1].dup is False) 132 assert(result.packets[2].dup is False) 133 assert(result.packets[0].source_address == "192.168.3.8") 134 assert(result.packets[1].source_address == "192.168.3.8") 135 assert(result.packets[2].source_address == "192.168.3.8") 136 137 138def test_ping_4480(): 139 result = Result.get('{"addr":"62.2.16.12","af":4,"avg":95.756666666666661,"dst_addr":"62.2.16.12","dst_name":"hsi.cablecom.ch","dup":0,"from":"194.85.27.7","fw":4480,"max":96.147999999999996,"min":95.388999999999996,"msm_id":1000192,"name":"hsi.cablecom.ch","prb_id":165,"proto":"ICMP","rcvd":3,"result":[{"rtt":95.733000000000004},{"rtt":96.147999999999996},{"rtt":95.388999999999996}],"sent":3,"size":20,"src_addr":"192.168.3.8","timestamp":1349776268,"ttl":46,"type":"ping"}') 140 assert(result.af == 4) 141 assert(result.rtt_average == 95.757) 142 assert(result.rtt_median == 95.733) 143 assert(result.destination_address == "62.2.16.12") 144 assert(result.destination_name == "hsi.cablecom.ch") 145 assert(result.duplicates == 0) 146 assert(result.origin == "194.85.27.7") 147 assert(result.firmware == 4480) 148 assert(result.seconds_since_sync is None) 149 assert(result.rtt_max == 96.148) 150 assert(result.rtt_min == 95.389) 151 assert(result.measurement_id == 1000192) 152 assert(result.probe_id == 165) 153 assert(result.protocol == PingResult.PROTOCOL_ICMP) 154 assert(result.packets_received == 3) 155 assert(result.packets_sent == 3) 156 assert(result.packet_size == 12) 157 assert(result.step is None) 158 assert(result.created.isoformat() == "2012-10-09T09:51:08+00:00") 159 assert(result.packets[0].rtt == 95.733) 160 assert(result.packets[1].rtt == 96.148) 161 assert(result.packets[2].rtt == 95.389) 162 assert(result.packets[0].ttl == 46) 163 assert(result.packets[1].ttl == 46) 164 assert(result.packets[2].ttl == 46) 165 assert(result.packets[0].dup is False) 166 assert(result.packets[1].dup is False) 167 assert(result.packets[2].dup is False) 168 assert(result.packets[0].source_address == "192.168.3.8") 169 assert(result.packets[1].source_address == "192.168.3.8") 170 assert(result.packets[2].source_address == "192.168.3.8") 171 172 173def test_ping_4500(): 174 result = Result.get('{"addr":"62.2.16.12","af":4,"avg":30.114666666666665,"dst_addr":"62.2.16.12","dst_name":"hsi.cablecom.ch","dup":0,"from":"80.56.151.3","fw":4500,"max":30.344999999999999,"min":29.960999999999999,"msm_id":1000192,"name":"hsi.cablecom.ch","prb_id":202,"proto":"ICMP","rcvd":3,"result":[{"rtt":30.038},{"rtt":29.960999999999999},{"rtt":30.344999999999999}],"sent":3,"size":20,"src_addr":"192.168.1.229","timestamp":1361244431,"ttl":55,"type":"ping"}') 175 assert(result.af == 4) 176 assert(result.rtt_average == 30.115) 177 assert(result.rtt_median == 30.038) 178 assert(result.destination_address == "62.2.16.12") 179 assert(result.destination_name == "hsi.cablecom.ch") 180 assert(result.duplicates == 0) 181 assert(result.origin == "80.56.151.3") 182 assert(result.firmware == 4500) 183 assert(result.seconds_since_sync is None) 184 assert(result.rtt_max == 30.345) 185 assert(result.rtt_min == 29.961) 186 assert(result.measurement_id == 1000192) 187 assert(result.probe_id == 202) 188 assert(result.protocol == PingResult.PROTOCOL_ICMP) 189 assert(result.packets_received == 3) 190 assert(result.packets_sent == 3) 191 assert(result.packet_size == 12) 192 assert(result.step is None) 193 assert(result.created.isoformat() == "2013-02-19T03:27:11+00:00") 194 assert(result.packets[0].rtt == 30.038) 195 assert(result.packets[1].rtt == 29.961) 196 assert(result.packets[2].rtt == 30.345) 197 assert(result.packets[0].ttl == 55) 198 assert(result.packets[1].ttl == 55) 199 assert(result.packets[2].ttl == 55) 200 assert(result.packets[0].dup is False) 201 assert(result.packets[1].dup is False) 202 assert(result.packets[2].dup is False) 203 assert(result.packets[0].source_address == "192.168.1.229") 204 assert(result.packets[1].source_address == "192.168.1.229") 205 assert(result.packets[2].source_address == "192.168.1.229") 206 207 208def test_ping_4520(): 209 result = Result.get('{"addr":"62.2.16.12","af":4,"avg":67.420999999999992,"dst_addr":"62.2.16.12","dst_name":"hsi.cablecom.ch","dup":0,"from":"194.85.27.7","fw":4520,"max":70.230999999999995,"min":65.974999999999994,"msm_id":1000192,"name":"hsi.cablecom.ch","prb_id":165,"proto":"ICMP","rcvd":3,"result":[{"rtt":70.230999999999995},{"rtt":65.974999999999994},{"rtt":66.057000000000002}],"sent":3,"size":20,"src_addr":"192.168.3.8","timestamp":1365379380,"ttl":47,"type":"ping"}') 210 assert(result.af == 4) 211 assert(result.rtt_average == 67.421) 212 assert(result.rtt_median == 66.057) 213 assert(result.destination_address == "62.2.16.12") 214 assert(result.destination_name == "hsi.cablecom.ch") 215 assert(result.duplicates == 0) 216 assert(result.origin == "194.85.27.7") 217 assert(result.firmware == 4520) 218 assert(result.seconds_since_sync is None) 219 assert(result.rtt_max == 70.231) 220 assert(result.rtt_min == 65.975) 221 assert(result.measurement_id == 1000192) 222 assert(result.probe_id == 165) 223 assert(result.protocol == PingResult.PROTOCOL_ICMP) 224 assert(result.packets_received == 3) 225 assert(result.packets_sent == 3) 226 assert(result.packet_size == 12) 227 assert(result.step is None) 228 assert(result.created.isoformat() == "2013-04-08T00:03:00+00:00") 229 assert(result.packets[0].rtt == 70.231) 230 assert(result.packets[1].rtt == 65.975) 231 assert(result.packets[2].rtt == 66.057) 232 assert(result.packets[0].ttl == 47) 233 assert(result.packets[1].ttl == 47) 234 assert(result.packets[2].ttl == 47) 235 assert(result.packets[0].dup is False) 236 assert(result.packets[1].dup is False) 237 assert(result.packets[2].dup is False) 238 assert(result.packets[0].source_address == "192.168.3.8") 239 assert(result.packets[1].source_address == "192.168.3.8") 240 assert(result.packets[2].source_address == "192.168.3.8") 241 242 243def test_ping_4550(): 244 result = Result.get('{"af":4,"avg":27.300999999999998,"dst_addr":"62.2.16.12","dst_name":"hsi.cablecom.ch","dup":0,"from":"80.56.151.3","fw":4550,"lts":365,"max":27.300999999999998,"min":27.300999999999998,"msm_id":1000192,"msm_name":"Ping","prb_id":202,"proto":"ICMP","rcvd":1,"result":[{"srcaddr":"192.168.1.229","x":"*"},{"x":"*"},{"rtt":27.300999999999998,"ttl":54}],"sent":3,"size":20,"src_addr":"192.168.1.229","step":360,"timestamp":1378271710,"ttl":54,"type":"ping"}') 245 assert(result.af == 4) 246 assert(result.rtt_average == 27.301) 247 assert(result.rtt_median == 27.301) 248 assert(result.destination_address == "62.2.16.12") 249 assert(result.destination_name == "hsi.cablecom.ch") 250 assert(result.duplicates == 0) 251 assert(result.origin == "80.56.151.3") 252 assert(result.firmware == 4550) 253 assert(result.seconds_since_sync == 365) 254 assert(result.rtt_max == 27.301) 255 assert(result.rtt_min == 27.301) 256 assert(result.measurement_id == 1000192) 257 assert(result.probe_id == 202) 258 assert(result.protocol == PingResult.PROTOCOL_ICMP) 259 assert(result.packets_received == 1) 260 assert(result.packets_sent == 3) 261 assert(result.packet_size == 12) 262 assert(result.step == 360) 263 assert(result.created.isoformat() == "2013-09-04T05:15:10+00:00") 264 assert(result.packets[0].rtt is None) 265 assert(result.packets[1].rtt is None) 266 assert(result.packets[2].rtt == 27.301) 267 assert(result.packets[0].ttl is None) 268 assert(result.packets[1].ttl is None) 269 assert(result.packets[2].ttl == 54) 270 assert(result.packets[0].dup is False) 271 assert(result.packets[1].dup is False) 272 assert(result.packets[2].dup is False) 273 assert(result.packets[0].source_address == "192.168.1.229") 274 assert(result.packets[1].source_address == "192.168.1.229") 275 assert(result.packets[2].source_address == "192.168.1.229") 276 277 278def test_ping_4560(): 279 result = Result.get('{"af":4,"avg":36.887,"dst_addr":"62.2.16.12","dst_name":"hsi.cablecom.ch","dup":0,"from":"62.195.143.53","fw":4560,"lts":36,"max":40.234000000000002,"min":34.747999999999998,"msm_id":1000192,"msm_name":"Ping","prb_id":202,"proto":"ICMP","rcvd":3,"result":[{"rtt":40.234000000000002},{"rtt":34.747999999999998,"srcaddr":"192.168.1.229"},{"rtt":35.679000000000002,"srcaddr":"192.168.1.229"}],"sent":3,"size":20,"src_addr":"192.168.1.229","step":360,"timestamp":1380586151,"ttl":54,"type":"ping"}') 280 assert(result.af == 4) 281 assert(result.rtt_average == 36.887) 282 assert(result.rtt_median == 35.679) 283 assert(result.destination_address == "62.2.16.12") 284 assert(result.destination_name == "hsi.cablecom.ch") 285 assert(result.duplicates == 0) 286 assert(result.origin == "62.195.143.53") 287 assert(result.firmware == 4560) 288 assert(result.seconds_since_sync is 36) 289 assert(result.rtt_max == 40.234) 290 assert(result.rtt_min == 34.748) 291 assert(result.measurement_id == 1000192) 292 assert(result.probe_id == 202) 293 assert(result.protocol == PingResult.PROTOCOL_ICMP) 294 assert(result.packets_received == 3) 295 assert(result.packets_sent == 3) 296 assert(result.packet_size == 12) 297 assert(result.step == 360) 298 assert(result.created.isoformat() == "2013-10-01T00:09:11+00:00") 299 assert(result.packets[0].rtt == 40.234) 300 assert(result.packets[1].rtt == 34.748) 301 assert(result.packets[2].rtt == 35.679) 302 assert(result.packets[0].ttl == 54) 303 assert(result.packets[1].ttl == 54) 304 assert(result.packets[2].ttl == 54) 305 assert(result.packets[0].dup is False) 306 assert(result.packets[1].dup is False) 307 assert(result.packets[2].dup is False) 308 assert(result.packets[0].source_address == "192.168.1.229") 309 assert(result.packets[1].source_address == "192.168.1.229") 310 assert(result.packets[2].source_address == "192.168.1.229") 311 312 313def test_ping_4570(): 314 result = Result.get('{"af":4,"avg":36.608333333333327,"dst_addr":"62.2.16.12","dst_name":"hsi.cablecom.ch","dup":0,"from":"62.195.143.53","fw":4570,"lts":-1,"max":36.741,"min":36.423999999999999,"msm_id":1000192,"msm_name":"Ping","prb_id":202,"proto":"ICMP","rcvd":3,"result":[{"rtt":36.741},{"rtt":36.659999999999997},{"rtt":36.423999999999999}],"sent":3,"size":12,"step":360,"timestamp":1384500425, "type":"ping"}') 315 assert(result.af == 4) 316 assert(result.rtt_average == 36.608) 317 assert(result.rtt_median == 36.66) 318 assert(result.destination_address == "62.2.16.12") 319 assert(result.destination_name == "hsi.cablecom.ch") 320 assert(result.duplicates == 0) 321 assert(result.origin == "62.195.143.53") 322 assert(result.firmware == 4570) 323 assert(result.seconds_since_sync is None) 324 assert(result.rtt_max == 36.741) 325 assert(result.rtt_min == 36.424) 326 assert(result.measurement_id == 1000192) 327 assert(result.probe_id == 202) 328 assert(result.protocol == PingResult.PROTOCOL_ICMP) 329 assert(result.packets_received == 3) 330 assert(result.packets_sent == 3) 331 assert(result.packet_size == 12) 332 assert(result.step == 360) 333 assert(result.created.isoformat() == "2013-11-15T07:27:05+00:00") 334 assert(result.packets[0].rtt == 36.741) 335 assert(result.packets[1].rtt == 36.66) 336 assert(result.packets[2].rtt == 36.424) 337 assert(result.packets[0].ttl is None) 338 assert(result.packets[1].ttl is None) 339 assert(result.packets[2].ttl is None) 340 assert(result.packets[0].dup is False) 341 assert(result.packets[1].dup is False) 342 assert(result.packets[2].dup is False) 343 assert(result.packets[0].source_address is None) 344 assert(result.packets[1].source_address is None) 345 assert(result.packets[2].source_address is None) 346 347 348def test_ping_4600(): 349 result = Result.get('{"af":4,"avg":47.951999999999998,"dst_addr":"62.2.16.24","dst_name":"hsi.cablecom.ch","dup":0,"from":"188.195.183.141","fw":4600,"group_id":1000192,"lts":222,"max":48.990000000000002,"min":45.939,"msm_id":1000192,"msm_name":"Ping","prb_id":270,"proto":"ICMP","rcvd":3,"result":[{"rtt":45.939},{"rtt":48.927},{"rtt":48.990000000000002}],"sent":3,"size":12,"src_addr":"192.168.178.21","step":360,"timestamp":1392321470,"ttl":50,"type":"ping"}') 350 assert(result.af == 4) 351 assert(result.rtt_average == 47.952) 352 assert(result.rtt_median == 48.927) 353 assert(result.destination_address == "62.2.16.24") 354 assert(result.destination_name == "hsi.cablecom.ch") 355 assert(result.duplicates == 0) 356 assert(result.origin == "188.195.183.141") 357 assert(result.firmware == 4600) 358 assert(result.seconds_since_sync == 222) 359 assert(result.rtt_max == 48.99) 360 assert(result.rtt_min == 45.939) 361 assert(result.measurement_id == 1000192) 362 assert(result.probe_id == 270) 363 assert(result.protocol == PingResult.PROTOCOL_ICMP) 364 assert(result.packets_received == 3) 365 assert(result.packets_sent == 3) 366 assert(result.packet_size == 12) 367 assert(result.step == 360) 368 assert(result.created.isoformat() == "2014-02-13T19:57:50+00:00") 369 assert(result.packets[0].rtt == 45.939) 370 assert(result.packets[1].rtt == 48.927) 371 assert(result.packets[2].rtt == 48.99) 372 assert(result.packets[0].ttl == 50) 373 assert(result.packets[1].ttl == 50) 374 assert(result.packets[2].ttl == 50) 375 assert(result.packets[0].dup is False) 376 assert(result.packets[1].dup is False) 377 assert(result.packets[2].dup is False) 378 assert(result.packets[0].source_address == "192.168.178.21") 379 assert(result.packets[1].source_address == "192.168.178.21") 380 assert(result.packets[2].source_address == "192.168.178.21") 381 382 383def test_ping_4610(): 384 result = Result.get('{"af":4,"avg":57.140666666666668,"dst_addr":"62.2.16.24","dst_name":"hsi.cablecom.ch","dup":0,"from":"188.195.181.120","fw":4610,"group_id":1000192,"lts":93,"max":63.213000000000001,"min":47.941000000000003,"msm_id":1000192,"msm_name":"Ping","prb_id":270,"proto":"ICMP","rcvd":3,"result":[{"rtt":63.213000000000001},{"rtt":47.941000000000003,"ttl":51},{"rtt":60.268000000000001,"ttl":50}],"sent":3,"size":12,"src_addr":"192.168.178.21","step":360,"timestamp":1395416383,"ttl":50,"type":"ping"}') 385 assert(isinstance(result, Result)) 386 assert(isinstance(result, PingResult)) 387 assert(isinstance(result.packets[0], Packet)) 388 assert(isinstance(result.packets[1], Packet)) 389 assert(isinstance(result.packets[2], Packet)) 390 assert(result.af == 4) 391 assert(result.rtt_average == 57.141) 392 assert(result.rtt_median == 60.268) 393 assert(result.destination_address == "62.2.16.24") 394 assert(result.destination_name == "hsi.cablecom.ch") 395 assert(result.duplicates == 0) 396 assert(result.origin == "188.195.181.120") 397 assert(result.firmware == 4610) 398 assert(result.seconds_since_sync == 93) 399 assert(result.rtt_max == 63.213) 400 assert(result.rtt_min == 47.941) 401 assert(result.measurement_id == 1000192) 402 assert(result.probe_id == 270) 403 assert(result.protocol == PingResult.PROTOCOL_ICMP) 404 assert(result.packets_received == 3) 405 assert(result.packets_sent == 3) 406 assert(result.packet_size == 12) 407 assert(result.step == 360) 408 assert(result.created.isoformat() == "2014-03-21T15:39:43+00:00") 409 assert(result.packets[0].rtt == 63.213) 410 assert(result.packets[1].rtt == 47.941) 411 assert(result.packets[2].rtt == 60.268) 412 assert(result.packets[0].ttl == 50) 413 assert(result.packets[1].ttl == 51) 414 assert(result.packets[2].ttl == 50) 415 assert(result.packets[0].dup is False) 416 assert(result.packets[1].dup is False) 417 assert(result.packets[2].dup is False) 418 assert(result.packets[0].source_address == "192.168.178.21") 419 assert(result.packets[1].source_address == "192.168.178.21") 420 assert(result.packets[2].source_address == "192.168.178.21") 421 422 423def test_ping_duplicate(): 424 result = Result.get('{"af":4,"avg":27.768000000000001,"dst_addr":"62.2.16.24","dst_name":"hsi.cablecom.ch","dup":2,"from":"109.190.83.40","fw":4610,"lts":38,"max":27.768000000000001,"min":27.768000000000001,"msm_id":1000192,"msm_name":"Ping","prb_id":1216,"proto":"ICMP","rcvd":1,"result":[{"srcaddr":"192.168.103.130","x":"*"},{"dup":1,"rtt":36.454000000000001,"ttl":54},{"dup":1,"rtt":37.756},{"rtt":27.768000000000001}],"sent":2,"size":12,"src_addr":"192.168.103.130","step":360,"timestamp":1395277728,"ttl":54,"type":"ping"}') 425 assert(result.af == 4) 426 assert(result.rtt_average == 27.768) 427 assert(result.rtt_median == 27.768) 428 assert(result.destination_address == "62.2.16.24") 429 assert(result.destination_name == "hsi.cablecom.ch") 430 assert(result.duplicates == 2) 431 assert(result.origin == "109.190.83.40") 432 assert(result.firmware == 4610) 433 assert(result.seconds_since_sync == 38) 434 assert(result.rtt_max == 27.768) 435 assert(result.rtt_min == 27.768) 436 assert(result.measurement_id == 1000192) 437 assert(result.probe_id == 1216) 438 assert(result.protocol == PingResult.PROTOCOL_ICMP) 439 assert(result.packets_received == 1) 440 assert(result.packets_sent == 2) 441 assert(result.packet_size == 12) 442 assert(result.step == 360) 443 assert(result.created.isoformat() == "2014-03-20T01:08:48+00:00") 444 assert(result.packets[0].rtt is None) 445 assert(result.packets[1].rtt == 36.454) 446 assert(result.packets[2].rtt == 37.756) 447 assert(result.packets[3].rtt == 27.768) 448 assert(result.packets[0].ttl is None) 449 assert(result.packets[1].ttl == 54) 450 assert(result.packets[2].ttl == 54) 451 assert(result.packets[3].ttl == 54) 452 assert(result.packets[0].dup is False) 453 assert(result.packets[1].dup is True) 454 assert(result.packets[2].dup is True) 455 assert(result.packets[3].dup is False) 456 assert(result.packets[0].source_address == "192.168.103.130") 457 assert(result.packets[1].source_address == "192.168.103.130") 458 assert(result.packets[2].source_address == "192.168.103.130") 459 assert(result.packets[3].source_address == "192.168.103.130") 460 461 462def test_ping_buggy(): 463 result = Result.get('{"af":4,"avg":-1,"dst_addr":"62.2.16.24","dst_name":"hsi.cablecom.ch","dup":2,"from":"62.195.143.53","fw":4600,"lts":130,"max":-1,"min":-1,"msm_id":1000192,"msm_name":"Ping","prb_id":202,"proto":"ICMP","rcvd":0,"result":[{"srcaddr":"192.168.1.229","x":"*"},{"dup":1,"rtt":1635.423,"ttl":55},{"dup":1,"rtt":1800.4939999999999}],"sent":1,"size":12,"src_addr":"192.168.1.229","step":360,"timestamp":1394745831,"ttl":55,"type":"ping"}') 464 assert(result.af == 4) 465 assert(result.rtt_average is None) 466 assert(result.rtt_median is None) 467 assert(result.destination_address == "62.2.16.24") 468 assert(result.destination_name == "hsi.cablecom.ch") 469 assert(result.duplicates == 2) 470 assert(result.origin == "62.195.143.53") 471 assert(result.firmware == 4600) 472 assert(result.seconds_since_sync == 130) 473 assert(result.rtt_max is None) 474 assert(result.rtt_min is None) 475 assert(result.measurement_id == 1000192) 476 assert(result.probe_id == 202) 477 assert(result.protocol == PingResult.PROTOCOL_ICMP) 478 assert(result.packets_received == 0) 479 assert(result.packets_sent == 1) 480 assert(result.packet_size == 12) 481 assert(result.step == 360) 482 print(result.created, type(result.created)) 483 print(result.created.isoformat()) 484 assert(result.created.isoformat() == "2014-03-13T21:23:51+00:00") 485 assert(result.packets[0].rtt is None) 486 assert(result.packets[1].rtt == 1635.423) 487 assert(result.packets[2].rtt == 1800.494) 488 assert(result.packets[0].ttl is None) 489 assert(result.packets[1].ttl == 55) 490 assert(result.packets[2].ttl == 55) 491 assert(result.packets[0].dup is False) 492 assert(result.packets[1].dup is True) 493 assert(result.packets[2].dup is True) 494 assert(result.packets[0].source_address == "192.168.1.229") 495 assert(result.packets[1].source_address == "192.168.1.229") 496 assert(result.packets[2].source_address == "192.168.1.229") 497 498 499def test_ping_lts(): 500 result = Result.get('{"af":4,"prb_id":270,"result":[{"rtt":70.265},{"rtt":54.584,"ttl":51},{"rtt":52.875}],"ttl":51,"avg":59.2413333333,"size":12,"from":"188.193.157.75","proto":"ICMP","timestamp":1406561624,"dup":0,"type":"ping","sent":3,"msm_id":1000192,"fw":4650,"max":70.265,"step":360,"src_addr":"192.168.178.21","rcvd":3,"msm_name":"Ping","lts":76,"dst_name":"hsi.cablecom.ch","min":52.875,"group_id":1000192,"dst_addr":"62.2.16.24"}') 501 assert(result.seconds_since_sync == 76) 502