format python
[oweals/gnunet.git] / src / integration-tests / test_integration_disconnect.py.in
index 737014e61f0fcf9f3e6e4488c4c9addcc38bc490..9861728c22b22074967ae55dda44e96ac4f89902 100755 (executable)
@@ -32,7 +32,6 @@ from gnunet_testing import Check
 from gnunet_testing import Condition
 from gnunet_testing import *
 
-
 #
 # This test tests if a fresh peer bootstraps from a hostlist server and then
 # successfully connects to the server. When both peers are connected
@@ -48,158 +47,169 @@ verbose = True
 check_timeout = 180
 
 if os.name == "nt":
-  tmp = os.getenv ("TEMP")
-  signals = [signal.SIGTERM, signal.SIGINT]
+    tmp = os.getenv("TEMP")
+    signals = [signal.SIGTERM, signal.SIGINT]
 else:
-  tmp = "/tmp"
-  signals = [signal.SIGTERM, signal.SIGINT, signal.SIGHUP, signal.SIGQUIT]
-
-def cleanup_onerror (function, path, excinfo):
-  import stat
-  if not os.path.exists (path):
-    pass
-  elif not os.access(path, os.W_OK):
-    # Is the error an access error ?
-    os.chmod (path, stat.S_IWUSR)
-    function (path)
-  else:
-    raise
-
-def cleanup ():
-  shutil.rmtree (os.path.join (tmp, "c_bootstrap_server"), False, cleanup_onerror)
-  shutil.rmtree (os.path.join (tmp, "c_no_nat_client"), False, cleanup_onerror)
-
-
-def success_disconnect_cont (check):
-       print('Peers disconnected successfully')
-       global success
-       success = True;
-
-
-def fail_disconnect_cont (check):
-       global success
-       success = False;
-       print('Peers failed to disconnect')
-       check.evaluate(True)
-
-def check_disconnect ():
-  test.p ('Shutting down bootstrap server')
-  server.stop ()
-  check = Check (test)
-  check.add (StatisticsCondition (client, 'transport', '# peers connected',0))
-  check.add (StatisticsCondition (client, 'core', '# peers connected',0))
-  check.add (StatisticsCondition (client, 'topology', '# peers connected',0))
-  check.add (StatisticsCondition (client, 'dht', '# peers connected',0))
-  check.add (StatisticsCondition (client, 'fs', '# peers connected',0))
-  check.run_blocking (check_timeout, success_disconnect_cont, fail_disconnect_cont)
-
-
-def success_connect_cont (check):
-       print('Peers connected successfully')
-       check_disconnect ()
-
-
-def fail_connect_cont (check):
-  global success
-  success= False
-  print('Peers failed to connected!')
-  check.evaluate(True)
-
-
-def check_connect ():
-  check = Check (test)
-  check.add (StatisticsCondition (server, 'transport', '# peers connected',1))
-  check.add (StatisticsCondition (server, 'core', '# peers connected',1))
-  check.add (StatisticsCondition (server, 'topology', '# peers connected',1))
-  check.add (StatisticsCondition (server, 'dht', '# peers connected',1))
-  check.add (StatisticsCondition (server, 'fs', '# peers connected',1))
-
-  check.add (StatisticsCondition (client, 'transport', '# peers connected',1))
-  check.add (StatisticsCondition (client, 'core', '# peers connected',1))
-  check.add (StatisticsCondition (client, 'topology', '# peers connected',1))
-  check.add (StatisticsCondition (client, 'dht', '# peers connected',1))
-  check.add (StatisticsCondition (client, 'fs', '# peers connected',1))
-
-  check.run_blocking (check_timeout, success_connect_cont, fail_connect_cont)
+    tmp = "/tmp"
+    signals = [signal.SIGTERM, signal.SIGINT, signal.SIGHUP, signal.SIGQUIT]
+
+
+def cleanup_onerror(function, path, excinfo):
+    import stat
+    if not os.path.exists(path):
+        pass
+    elif not os.access(path, os.W_OK):
+        # Is the error an access error ?
+        os.chmod(path, stat.S_IWUSR)
+        function(path)
+    else:
+        raise
+
+
+def cleanup():
+    shutil.rmtree(
+        os.path.join(tmp, "c_bootstrap_server"), False, cleanup_onerror
+    )
+    shutil.rmtree(os.path.join(tmp, "c_no_nat_client"), False, cleanup_onerror)
+
+
+def success_disconnect_cont(check):
+    print('Peers disconnected successfully')
+    global success
+    success = True
+
+
+def fail_disconnect_cont(check):
+    global success
+    success = False
+    print('Peers failed to disconnect')
+    check.evaluate(True)
+
+
+def check_disconnect():
+    test.p('Shutting down bootstrap server')
+    server.stop()
+    check = Check(test)
+    check.add(StatisticsCondition(client, 'transport', '# peers connected', 0))
+    check.add(StatisticsCondition(client, 'core', '# peers connected', 0))
+    check.add(StatisticsCondition(client, 'topology', '# peers connected', 0))
+    check.add(StatisticsCondition(client, 'dht', '# peers connected', 0))
+    check.add(StatisticsCondition(client, 'fs', '# peers connected', 0))
+    check.run_blocking(
+        check_timeout, success_disconnect_cont, fail_disconnect_cont
+    )
+
+
+def success_connect_cont(check):
+    print('Peers connected successfully')
+    check_disconnect()
+
+
+def fail_connect_cont(check):
+    global success
+    success = False
+    print('Peers failed to connected!')
+    check.evaluate(True)
+
+
+def check_connect():
+    check = Check(test)
+    check.add(StatisticsCondition(server, 'transport', '# peers connected', 1))
+    check.add(StatisticsCondition(server, 'core', '# peers connected', 1))
+    check.add(StatisticsCondition(server, 'topology', '# peers connected', 1))
+    check.add(StatisticsCondition(server, 'dht', '# peers connected', 1))
+    check.add(StatisticsCondition(server, 'fs', '# peers connected', 1))
+
+    check.add(StatisticsCondition(client, 'transport', '# peers connected', 1))
+    check.add(StatisticsCondition(client, 'core', '# peers connected', 1))
+    check.add(StatisticsCondition(client, 'topology', '# peers connected', 1))
+    check.add(StatisticsCondition(client, 'dht', '# peers connected', 1))
+    check.add(StatisticsCondition(client, 'fs', '# peers connected', 1))
+
+    check.run_blocking(check_timeout, success_connect_cont, fail_connect_cont)
+
 
 #
 # Test execution
 #
 
-def SigHandler(signum = None, frame = None):
-       global success
-       global server
-       global client
-
-       print('Test was aborted!')
-       if (None != server):
-               server.stop ()
-       if (None != client):
-               client.stop ()
-       cleanup ()
-       sys.exit(success)
-
-def run ():
-       global success
-       global test
-       global server
-       global client
-
-       server = None
-       client = None
-       success = False
-
-       for sig in signals:
-               signal.signal(sig, SigHandler)
-
-       test = Test ('test_integration_bootstrap_and_connect.py', verbose)
-       cleanup ()
-
-       server = Peer(test, './confs/c_bootstrap_server.conf');
-       client = Peer(test, './confs/c_no_nat_client.conf');
-
-       if (True != server.start()):
-               print('Failed to start server')
-               if (None != server):
-                       server.stop ()
-               cleanup ()
-               sys.exit(success)
-
-       # Give the server time to start
-       time.sleep(5)
-
-       if (True != client.start()):
-               print('Failed to start client')
-               if (None != server):
-                       server.stop ()
-               if (None != client):
-                       client.stop ()
-               cleanup ()
-               sys.exit(success)
-
-       if ((client.started == True) and (server.started == True)):
-               test.p ('Peers started, running check')
-               time.sleep(5)
-               check_connect ()
-       server.stop ()
-       client.stop ()
-
-       cleanup ()
-
-       if (success == False):
-               print ('Test failed')
-               return False
-       else:
-               return True
+
+def SigHandler(signum=None, frame=None):
+    global success
+    global server
+    global client
+
+    print('Test was aborted!')
+    if (None != server):
+        server.stop()
+    if (None != client):
+        client.stop()
+    cleanup()
+    sys.exit(success)
+
+
+def run():
+    global success
+    global test
+    global server
+    global client
+
+    server = None
+    client = None
+    success = False
+
+    for sig in signals:
+        signal.signal(sig, SigHandler)
+
+    test = Test('test_integration_bootstrap_and_connect.py', verbose)
+    cleanup()
+
+    server = Peer(test, './confs/c_bootstrap_server.conf')
+    client = Peer(test, './confs/c_no_nat_client.conf')
+
+    if (True != server.start()):
+        print('Failed to start server')
+        if (None != server):
+            server.stop()
+        cleanup()
+        sys.exit(success)
+
+    # Give the server time to start
+    time.sleep(5)
+
+    if (True != client.start()):
+        print('Failed to start client')
+        if (None != server):
+            server.stop()
+        if (None != client):
+            client.stop()
+        cleanup()
+        sys.exit(success)
+
+    if ((client.started == True) and (server.started == True)):
+        test.p('Peers started, running check')
+        time.sleep(5)
+        check_connect()
+    server.stop()
+    client.stop()
+
+    cleanup()
+
+    if (success == False):
+        print('Test failed')
+        return False
+    else:
+        return True
+
 
 try:
-       run ()
+    run()
 except (KeyboardInterrupt, SystemExit):
-       print('Test interrupted')
-       server.stop ()
-       client.stop ()
-       cleanup ()
+    print('Test interrupted')
+    server.stop()
+    client.stop()
+    cleanup()
 if (success == False):
-       sys.exit(1)
+    sys.exit(1)
 else:
-       sys.exit(0)
+    sys.exit(0)