diff --git a/src/tests/test_overall.py b/src/tests/test_overall.py --- a/src/tests/test_overall.py +++ b/src/tests/test_overall.py @@ -1,5 +1,4 @@ import os -import sys import shutil import hashlib import multiprocessing @@ -8,7 +7,7 @@ from unittest import TestCase import config from hashtree import HashTree -from client import Client, Connection as ClientConnection +from client import Client, Connection as ClientConnection, DeniedConnection from server import Miniserver from . import RedirectedOutput @@ -56,6 +55,7 @@ class TestMorevna(RedirectedOutput,TestC os.remove(treeFile) def test_push(self): + config.port+=1 ms=Miniserver(filename) p=multiprocessing.Process(target=ms.serve) p.start() @@ -65,6 +65,7 @@ class TestMorevna(RedirectedOutput,TestC c=Client(clientFile) with ClientConnection("127.0.0.1",config.port) as con: c.setConnection(con) + c.init("push") blocksToTransfer=c.negotiate() c.sendData(blocksToTransfer) @@ -74,6 +75,7 @@ class TestMorevna(RedirectedOutput,TestC p.join() def test_pull(self): + config.port+=1 serverFile=os.path.join(dataDir,"test3.img") ms=Miniserver(serverFile) p=multiprocessing.Process(target=ms.serve) @@ -82,6 +84,7 @@ class TestMorevna(RedirectedOutput,TestC c=Client(filename) with ClientConnection("127.0.0.1",config.port) as con: c.setConnection(con) + c.init("pull") blocksToTransfer=c.negotiate() c.pullData(blocksToTransfer) @@ -89,3 +92,24 @@ class TestMorevna(RedirectedOutput,TestC p.terminate() p.join() + + def test_deny(self): + config.port+=1 + ms=Miniserver(filename) + p=multiprocessing.Process(target=ms.serve) + p.start() + + c1=Client(os.path.join(dataDir,"test2.img")) + with ClientConnection("127.0.0.1",config.port) as con1: + c1.setConnection(con1) + c1.init("push") + + c2=Client(os.path.join(dataDir,"test3.img")) + with ClientConnection("127.0.0.1",config.port) as con2: + c2.setConnection(con2) + with self.assertRaises(DeniedConnection): + c2.init("push") + c1.sendData([]) # to unlock the server + + p.terminate() + p.join()