(self, file_server, site, site_temp)
| 76 | assert site.content_manager.hashfield.getHashId(new_hash) not in site.content_manager.hashfield |
| 77 | |
| 78 | def testHashfieldExchange(self, file_server, site, site_temp): |
| 79 | server1 = file_server |
| 80 | server1.sites[site.address] = site |
| 81 | site.connection_server = server1 |
| 82 | |
| 83 | server2 = FileServer(file_server.ip, 1545) |
| 84 | server2.sites[site_temp.address] = site_temp |
| 85 | site_temp.connection_server = server2 |
| 86 | site.storage.verifyFiles(quick_check=True) # Find what optional files we have |
| 87 | |
| 88 | # Add file_server as peer to client |
| 89 | server2_peer1 = site_temp.addPeer(file_server.ip, 1544) |
| 90 | |
| 91 | # Check if hashfield has any files |
| 92 | assert len(site.content_manager.hashfield) > 0 |
| 93 | |
| 94 | # Testing hashfield sync |
| 95 | assert len(server2_peer1.hashfield) == 0 |
| 96 | assert server2_peer1.updateHashfield() # Query hashfield from peer |
| 97 | assert len(server2_peer1.hashfield) > 0 |
| 98 | |
| 99 | # Test force push new hashfield |
| 100 | site_temp.content_manager.hashfield.appendHash("AABB") |
| 101 | server1_peer2 = site.addPeer(file_server.ip, 1545, return_peer=True) |
| 102 | with Spy.Spy(FileRequest, "route") as requests: |
| 103 | assert len(server1_peer2.hashfield) == 0 |
| 104 | server2_peer1.sendMyHashfield() |
| 105 | assert len(server1_peer2.hashfield) == 1 |
| 106 | server2_peer1.sendMyHashfield() # Hashfield not changed, should be ignored |
| 107 | |
| 108 | assert len(requests) == 1 |
| 109 | |
| 110 | time.sleep(0.01) # To make hashfield change date different |
| 111 | |
| 112 | site_temp.content_manager.hashfield.appendHash("AACC") |
| 113 | server2_peer1.sendMyHashfield() # Push hashfield |
| 114 | |
| 115 | assert len(server1_peer2.hashfield) == 2 |
| 116 | assert len(requests) == 2 |
| 117 | |
| 118 | site_temp.content_manager.hashfield.appendHash("AADD") |
| 119 | |
| 120 | assert server1_peer2.updateHashfield(force=True) # Request hashfield |
| 121 | assert len(server1_peer2.hashfield) == 3 |
| 122 | assert len(requests) == 3 |
| 123 | |
| 124 | assert not server2_peer1.sendMyHashfield() # Not changed, should be ignored |
| 125 | assert len(requests) == 3 |
| 126 | |
| 127 | server2.stop() |
| 128 | |
| 129 | def testFindHash(self, file_server, site, site_temp): |
| 130 | file_server.sites[site.address] = site |
nothing calls this directly
no test coverage detected