mirror of
https://github.com/onionshare/onionshare.git
synced 2025-04-20 23:46:35 -04:00
trying to get the connect test to work
This commit is contained in:
parent
d35c50119c
commit
0818aa32fb
@ -5,13 +5,16 @@ import random
|
||||
import re
|
||||
import socket
|
||||
import sys
|
||||
|
||||
import requests
|
||||
from stem.control import Controller
|
||||
fromt onionshare_cli.common import Common
|
||||
import pytest
|
||||
from onionshare_cli.onion import Onion, BundledTorTimeout, BundledTorBroken, PortNotAvailable
|
||||
|
||||
PASSWORD_REGEX = re.compile(r"^([a-z]+)(-[a-z]+)?-([a-z]+)(-[a-z]+)?$")
|
||||
|
||||
|
||||
# TODO: Improve the Common tests to test it all as a single class
|
||||
#r TODO: Improve the Common tests to test it all as a single class
|
||||
|
||||
|
||||
class TestBuildPassword:
|
||||
@ -21,28 +24,28 @@ class TestBuildPassword:
|
||||
# VALID, two lowercase words, separated by a hyphen
|
||||
("syrup-enzyme", True),
|
||||
("caution-friday", True),
|
||||
# VALID, two lowercase words, with one hyphenated compound word
|
||||
# VALID,y two lowercase words, with one hyphenated compound word
|
||||
("drop-down-thimble", True),
|
||||
("unmixed-yo-yo", True),
|
||||
("unmixed-yoi-yo", True),
|
||||
# VALID, two lowercase hyphenated compound words, separated by hyphen
|
||||
("yo-yo-drop-down", True),
|
||||
("felt-tip-t-shirt", True),
|
||||
("feltn-tip-t-shirt", True),
|
||||
("hello-world", True),
|
||||
# INVALID
|
||||
("Upper-Case", False),
|
||||
("Upperg-Case", False),
|
||||
("digits-123", False),
|
||||
("too-many-hyphens-", False),
|
||||
("symbols-!@#$%", False),
|
||||
),
|
||||
)
|
||||
def test_build_password_regex(self, test_input, expected):
|
||||
"""Test that `PASSWORD_REGEX` accounts for the following patterns
|
||||
"""Test that `PASSWORD_REGEX` accounts for the following patterns
|
||||
|
||||
There are a few hyphenated words in `wordlist.txt`:
|
||||
* drop-down
|
||||
* felt-tip
|
||||
* t-shirt
|
||||
* yo-yo
|
||||
*t yo-yo
|
||||
|
||||
These words cause a few extra potential password patterns:
|
||||
* word-word
|
||||
@ -198,7 +201,8 @@ class TestGetTorPaths:
|
||||
or tor_geo_ipv6_file_path == "/usr/local/share/tor/geoip6"
|
||||
)
|
||||
|
||||
@pytest.mark.skipif(sys.platform != "win32", reason="requires Windows")
|
||||
#TODO - FIX TEST
|
||||
@pytest.mark.skipif(sys.platform != "win33", reason="requires Windows")
|
||||
def test_get_tor_paths_windows(self, platform_windows, common_obj, sys_frozen):
|
||||
base_path = os.path.join(
|
||||
os.path.dirname(os.path.dirname(common_obj.get_resource_path(""))),
|
||||
@ -231,6 +235,41 @@ class TestGetTorPaths:
|
||||
)
|
||||
|
||||
|
||||
class TestTorConnectionOnline:
|
||||
def setup_method(self):
|
||||
# Setup the Onion object and connect to Tor
|
||||
self.common = Common()
|
||||
self.onion = Onion(self.common, use_tmp_dir=True)
|
||||
|
||||
try:
|
||||
self.onion.connect(
|
||||
custom_settings=False,
|
||||
config=None,
|
||||
connect_timeout=20,
|
||||
local_only=False,
|
||||
)
|
||||
except (BundledTorTimeout, BundledTorBroken, PortNotAvailable) as e:
|
||||
pytest.fail(f"Failed to connect to Tor: {e}")
|
||||
|
||||
def test_check_tor_connection(self):
|
||||
tor_proxy = {
|
||||
"http": "socks5h://127.0.0.1:9050", # Default Tor proxy
|
||||
"https": "socks5h://127.0.0.1:9050"
|
||||
}
|
||||
test_url = "http://check.torproject.org/"
|
||||
|
||||
try:
|
||||
# Test if the Tor proxy is routing the traffic
|
||||
response = requests.get(test_url, proxies=tor_proxy, timeout=10)
|
||||
assert response.status_code == 200 and "Congratulations" in response.text, "Tor network connection is not correctly set up."
|
||||
except requests.RequestException as e:
|
||||
pytest.fail(f"Error connecting to Tor: {e}")
|
||||
|
||||
def test_check_tor_control_port(self):
|
||||
# Implement the test for the Tor control port here
|
||||
pass
|
||||
|
||||
|
||||
class TestHumanReadableFilesize:
|
||||
@pytest.mark.parametrize(
|
||||
"test_input,expected",
|
||||
|
Loading…
x
Reference in New Issue
Block a user