Пример #1
0
def _test_dele(conn: socket.socket):
    _dummy_start(conn)

    myport = utils.get_random_port()
    data_socket = socket.socket()
    data_socket.bind(('', myport))
    data_socket.listen(1)

    port_representation = f'{utils.get_ip().replace(".", ",")},{myport // 256},{myport % 256}'
    conn.send(b'PORT ' + port_representation.encode() + b'\r\n')
    data = conn.recv(BYTES_TO_LISTEN)
    assert data.decode()[0] == '2'

    conn.send(b'STOR demo2.txt\r\n')
    data = conn.recv(BYTES_TO_LISTEN)
    assert data.decode()[:3] == '150'
    data_conn, _ = data_socket.accept()
    data_conn.send(FILE_TXT)
    data_conn.close()
    data_socket.close()
    conn.recv(BYTES_TO_LISTEN)

    conn.send(b'DELE demo2.txt\r\n')
    data = conn.recv(BYTES_TO_LISTEN)
    assert data.decode()[0] == '2'

    conn.send(b'RETR demo2.txt\r\n')
    data = conn.recv(BYTES_TO_LISTEN)
    assert data.decode()[0] not in ['1', '2']
Пример #2
0
def _test_minimal_retr(conn: socket.socket):
    _dummy_start(conn)

    myport = utils.get_random_port()
    data_socket = socket.socket()
    data_socket.bind(('', myport))
    data_socket.listen(1)

    port_representation = f'{utils.get_ip().replace(".", ",")},{myport // 256},{myport % 256}'
    conn.send(b'PORT ' + port_representation.encode() + b'\r\n')
    data = conn.recv(BYTES_TO_LISTEN)
    assert data.decode()[0] == '2'

    conn.send(b'RETR demo.txt\r\n')
    data = conn.recv(BYTES_TO_LISTEN)
    assert data.decode()[:3] == '150'
    data_conn, _ = data_socket.accept()
    received = data_conn.recv(BYTES_TO_LISTEN)
    data_conn.close()
    data_socket.close()

    data = conn.recv(BYTES_TO_LISTEN)
    assert data.decode().split()[0][0] == '2'

    assert received.decode().strip() == FILE_TXT.decode().strip()

    conn.send(b'RETR whatever_final_fix_mock_2121.psd\r\n')
    data = conn.recv(BYTES_TO_LISTEN)
    assert data.decode()[0] not in ['1', '2']
Пример #3
0
def init_db():
    global _DB_PROC, DB_PORT, _MONGO
    if DB_PORT == 0:
        DB_PORT = get_random_port(_PORT_RANGE)
    current_app.config["DB_PORT"] = DB_PORT
    current_app.config["MONGO_URI"] = get_mongo_uri(DB_NAME, DB_USER, DB_PASS,
                                                    DB_PORT)
    try:
        _DB_PROC = _start_mongod()
    except Exception as e:
        print(e)
        sys.exit(1)
    _MONGO = PyMongo(current_app)
    return _MONGO
Пример #4
0
    def setUpClass(cls):
        print(f"The proxy unit test start!")
        # Initial Redis
        redis_port = get_random_port()
        cls.redis_process = subprocess.Popen(["redis-server", "--port", str(redis_port), "--daemonize yes"])
        cls.redis_process.wait()

        # Initial proxies
        cls.worker_proxies = []
        proxy_type_list = ["master"] + ["worker"] * 5
        with ThreadPoolExecutor(max_workers=6) as executor:
            all_tasks = [executor.submit(proxy_generator, proxy_type, redis_port) for proxy_type in proxy_type_list]

            for task in as_completed(all_tasks):
                result = task.result()
                if "master" in result.component_name:
                    cls.master_proxy = result
                else:
                    cls.worker_proxies.append(result)
Пример #5
0
    def setUpClass(cls):
        print(f"The dist decorator unit test start!")
        # Initial Redis.
        redis_port = get_random_port()
        cls.redis_process = subprocess.Popen(
            ["redis-server", "--port",
             str(redis_port), "--daemonize yes"])
        cls.redis_process.wait()

        # Initial receiver.
        conditional_event = "sender:*:1"
        handler_dict = {conditional_event: handler_function}
        decorator_task = threading.Thread(target=lunch_receiver,
                                          args=(
                                              handler_dict,
                                              redis_port,
                                          ))
        decorator_task.start()

        # Initial sender proxy.
        with ThreadPoolExecutor() as executor:
            sender_task = executor.submit(proxy_generator, "sender",
                                          redis_port)
            cls.sender_proxy = sender_task.result()
Пример #6
0
def gen_new_port() -> tp.Tuple[int, str]:
    np = utils.get_random_port()
    comma_separeted_host = utils.get_ip().replace('.', ',')
    return np, f'{comma_separeted_host},{np // 256},{np % 256}'