From c73d1fff6a7284057f5a87d160f59738fe9f1294 Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Tue, 2 Apr 2024 14:27:47 +0200 Subject: [PATCH 1/6] Remove unnecessary exceptions from validate_url_domain --- bookwyrm/tests/test_utils.py | 4 ---- bookwyrm/utils/validate.py | 7 ++----- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/bookwyrm/tests/test_utils.py b/bookwyrm/tests/test_utils.py index 61ed2262c..ed62050a8 100644 --- a/bookwyrm/tests/test_utils.py +++ b/bookwyrm/tests/test_utils.py @@ -25,7 +25,3 @@ class TestUtils(TestCase): self.assertIsNone( validate_url_domain("https://up-to-no-good.tld/bad-actor.exe") ) - - def test_default_url_domain(self): - """Check with a default URL""" - self.assertEqual(validate_url_domain("/"), "/") diff --git a/bookwyrm/utils/validate.py b/bookwyrm/utils/validate.py index ed1b00b0e..459bc70a6 100644 --- a/bookwyrm/utils/validate.py +++ b/bookwyrm/utils/validate.py @@ -4,14 +4,11 @@ from typing import Optional from bookwyrm.settings import DOMAIN, USE_HTTPS -def validate_url_domain(url: str) -> Optional[str]: +def validate_url_domain(url: Optional[str]) -> Optional[str]: """Basic check that the URL starts with the instance domain name""" - if not url: + if url is None: return None - if url == "/": - return url - protocol = "https://" if USE_HTTPS else "http://" origin = f"{protocol}{DOMAIN}" From baea105c182387def5858a908121b2983d952772 Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Tue, 2 Apr 2024 14:23:34 +0200 Subject: [PATCH 2/6] pytest.ini env values should be unquoted Otherwise the quotes end up in the strings. --- pytest.ini | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pytest.ini b/pytest.ini index 18c955032..2988a7dc5 100644 --- a/pytest.ini +++ b/pytest.ini @@ -14,16 +14,16 @@ env = ALLOWED_HOSTS = your.domain.here BOOKWYRM_DATABASE_BACKEND = postgres MEDIA_ROOT = images/ - CELERY_BROKER = "" + CELERY_BROKER = REDIS_BROKER_PORT = 6379 REDIS_BROKER_PASSWORD = beep REDIS_ACTIVITY_PORT = 6379 REDIS_ACTIVITY_PASSWORD = beep USE_DUMMY_CACHE = true FLOWER_PORT = 8888 - EMAIL_HOST = "smtp.mailgun.org" + EMAIL_HOST = smtp.mailgun.org EMAIL_PORT = 587 - EMAIL_HOST_USER = "" - EMAIL_HOST_PASSWORD = "" + EMAIL_HOST_USER = + EMAIL_HOST_PASSWORD = EMAIL_USE_TLS = true ENABLE_PREVIEW_IMAGES = false From 3aefbb548efcef558f4b96de1d8df7cad597b572 Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Sun, 7 Apr 2024 17:19:48 +0200 Subject: [PATCH 3/6] Allow serving BookWyrm on a non-standard port --- .env.example | 11 ++++++++--- bookwyrm/connectors/connector_manager.py | 9 ++++++--- bookwyrm/forms/links.py | 2 +- bookwyrm/models/connector.py | 2 +- bookwyrm/models/federated_server.py | 5 ++--- bookwyrm/models/link.py | 2 +- bookwyrm/models/user.py | 4 ++-- bookwyrm/settings.py | 23 +++++++++++++---------- bookwyrm/templatetags/utilities.py | 2 +- bookwyrm/tests/test_signing.py | 4 ++-- pytest.ini | 1 + 11 files changed, 38 insertions(+), 27 deletions(-) diff --git a/.env.example b/.env.example index 6a217df0c..c61ceba1e 100644 --- a/.env.example +++ b/.env.example @@ -16,6 +16,11 @@ DEFAULT_LANGUAGE="English" ## Leave unset to allow all hosts # ALLOWED_HOSTS="localhost,127.0.0.1,[::1]" +# Specify when the site is served from a port that is not the default +# for the protocol (80 for HTTP or 443 for HTTPS). +# Probably only necessary in development. +# PORT=1333 + MEDIA_ROOT=images/ # Database configuration @@ -139,9 +144,9 @@ HTTP_X_FORWARDED_PROTO=false TWO_FACTOR_LOGIN_VALIDITY_WINDOW=2 TWO_FACTOR_LOGIN_MAX_SECONDS=60 -# Additional hosts to allow in the Content-Security-Policy, "self" (should be DOMAIN) -# and AWS_S3_CUSTOM_DOMAIN (if used) are added by default. -# Value should be a comma-separated list of host names. +# Additional hosts to allow in the Content-Security-Policy, "self" (should be +# DOMAIN with optionally ":" + PORT) and AWS_S3_CUSTOM_DOMAIN (if used) are +# added by default. Value should be a comma-separated list of host names. CSP_ADDITIONAL_HOSTS= # Time before being logged out (in seconds) diff --git a/bookwyrm/connectors/connector_manager.py b/bookwyrm/connectors/connector_manager.py index 444a626ba..bdea00719 100644 --- a/bookwyrm/connectors/connector_manager.py +++ b/bookwyrm/connectors/connector_manager.py @@ -118,9 +118,9 @@ def get_connectors() -> Iterator[abstract_connector.AbstractConnector]: def get_or_create_connector(remote_id: str) -> abstract_connector.AbstractConnector: """get the connector related to the object's server""" url = urlparse(remote_id) - identifier = url.netloc + identifier = url.hostname if not identifier: - raise ValueError("Invalid remote id") + raise ValueError(f"Invalid remote id: {remote_id}") try: connector_info = models.Connector.objects.get(identifier=identifier) @@ -188,8 +188,11 @@ def raise_not_valid_url(url: str) -> None: if not parsed.scheme in ["http", "https"]: raise ConnectorException("Invalid scheme: ", url) + if not parsed.hostname: + raise ConnectorException("Hostname missing: ", url) + try: - ipaddress.ip_address(parsed.netloc) + ipaddress.ip_address(parsed.hostname) raise ConnectorException("Provided url is an IP address: ", url) except ValueError: # it's not an IP address, which is good diff --git a/bookwyrm/forms/links.py b/bookwyrm/forms/links.py index 345c5c1d4..5156d2578 100644 --- a/bookwyrm/forms/links.py +++ b/bookwyrm/forms/links.py @@ -26,7 +26,7 @@ class FileLinkForm(CustomForm): url = cleaned_data.get("url") filetype = cleaned_data.get("filetype") book = cleaned_data.get("book") - domain = urlparse(url).netloc + domain = urlparse(url).hostname if models.LinkDomain.objects.filter(domain=domain).exists(): status = models.LinkDomain.objects.get(domain=domain).status if status == "blocked": diff --git a/bookwyrm/models/connector.py b/bookwyrm/models/connector.py index 99e73ab37..f4b5be04c 100644 --- a/bookwyrm/models/connector.py +++ b/bookwyrm/models/connector.py @@ -11,7 +11,7 @@ ConnectorFiles = models.TextChoices("ConnectorFiles", CONNECTORS) class Connector(BookWyrmModel): """book data source connectors""" - identifier = models.CharField(max_length=255, unique=True) + identifier = models.CharField(max_length=255, unique=True) # domain priority = models.IntegerField(default=2) name = models.CharField(max_length=255, null=True, blank=True) connector_file = models.CharField(max_length=255, choices=ConnectorFiles.choices) diff --git a/bookwyrm/models/federated_server.py b/bookwyrm/models/federated_server.py index e1081ed45..5e08fc11d 100644 --- a/bookwyrm/models/federated_server.py +++ b/bookwyrm/models/federated_server.py @@ -16,7 +16,7 @@ FederationStatus = [ class FederatedServer(BookWyrmModel): """store which servers we federate with""" - server_name = models.CharField(max_length=255, unique=True) + server_name = models.CharField(max_length=255, unique=True) # domain status = models.CharField( max_length=255, default="federated", choices=FederationStatus ) @@ -64,5 +64,4 @@ class FederatedServer(BookWyrmModel): def is_blocked(cls, url: str) -> bool: """look up if a domain is blocked""" url = urlparse(url) - domain = url.netloc - return cls.objects.filter(server_name=domain, status="blocked").exists() + return cls.objects.filter(server_name=url.hostname, status="blocked").exists() diff --git a/bookwyrm/models/link.py b/bookwyrm/models/link.py index d334a9d29..67bf9c4d4 100644 --- a/bookwyrm/models/link.py +++ b/bookwyrm/models/link.py @@ -38,7 +38,7 @@ class Link(ActivitypubMixin, BookWyrmModel): """create a link""" # get or create the associated domain if not self.domain: - domain = urlparse(self.url).netloc + domain = urlparse(self.url).hostname self.domain, _ = LinkDomain.objects.get_or_create(domain=domain) # this is never broadcast, the owning model broadcasts an update diff --git a/bookwyrm/models/user.py b/bookwyrm/models/user.py index 0ec2c6529..8db9af7b6 100644 --- a/bookwyrm/models/user.py +++ b/bookwyrm/models/user.py @@ -349,7 +349,7 @@ class User(OrderedCollectionPageMixin, AbstractUser): if not self.local and not re.match(regex.FULL_USERNAME, self.username): # generate a username that uses the domain (webfinger format) actor_parts = urlparse(self.remote_id) - self.username = f"{self.username}@{actor_parts.netloc}" + self.username = f"{self.username}@{actor_parts.hostname}" # this user already exists, no need to populate fields if not created: @@ -558,7 +558,7 @@ def set_remote_server(user_id, allow_external_connections=False): user = User.objects.get(id=user_id) actor_parts = urlparse(user.remote_id) federated_server = get_or_create_remote_server( - actor_parts.netloc, allow_external_connections=allow_external_connections + actor_parts.hostname, allow_external_connections=allow_external_connections ) # if we were unable to find the server, we need to create a new entry for it if not federated_server: diff --git a/bookwyrm/settings.py b/bookwyrm/settings.py index 27c86a22a..72c5221a4 100644 --- a/bookwyrm/settings.py +++ b/bookwyrm/settings.py @@ -350,28 +350,31 @@ USE_L10N = True USE_TZ = True - -USER_AGENT = f"BookWyrm (BookWyrm/{VERSION}; +https://{DOMAIN}/)" - # Imagekit generated thumbnails ENABLE_THUMBNAIL_GENERATION = env.bool("ENABLE_THUMBNAIL_GENERATION", False) IMAGEKIT_CACHEFILE_DIR = "thumbnails" IMAGEKIT_DEFAULT_CACHEFILE_STRATEGY = "bookwyrm.thumbnail_generation.Strategy" -# Static files (CSS, JavaScript, Images) -# https://docs.djangoproject.com/en/3.2/howto/static-files/ - PROJECT_DIR = os.path.dirname(os.path.abspath(__file__)) CSP_ADDITIONAL_HOSTS = env.list("CSP_ADDITIONAL_HOSTS", []) -# Storage - PROTOCOL = "http" if USE_HTTPS: PROTOCOL = "https" SESSION_COOKIE_SECURE = True CSRF_COOKIE_SECURE = True +PORT = env.int("PORT", 443 if USE_HTTPS else 80) +if (USE_HTTPS and PORT == 443) or (not USE_HTTPS and PORT == 80): + NETLOC = DOMAIN +else: + NETLOC = f"{DOMAIN}:{PORT}" +BASE_URL = f"{PROTOCOL}://{NETLOC}" + +USER_AGENT = f"BookWyrm (BookWyrm/{VERSION}; +{BASE_URL})" + +# Storage + USE_S3 = env.bool("USE_S3", False) USE_AZURE = env.bool("USE_AZURE", False) S3_SIGNED_URL_EXPIRY = env.int("S3_SIGNED_URL_EXPIRY", 900) @@ -440,11 +443,11 @@ elif USE_AZURE: else: # Static settings STATIC_URL = "/static/" - STATIC_FULL_URL = f"{PROTOCOL}://{DOMAIN}{STATIC_URL}" + STATIC_FULL_URL = BASE_URL + STATIC_URL STATICFILES_STORAGE = "django.contrib.staticfiles.storage.StaticFilesStorage" # Media settings MEDIA_URL = "/images/" - MEDIA_FULL_URL = f"{PROTOCOL}://{DOMAIN}{MEDIA_URL}" + MEDIA_FULL_URL = BASE_URL + MEDIA_URL DEFAULT_FILE_STORAGE = "django.core.files.storage.FileSystemStorage" # Exports settings EXPORTS_STORAGE = "bookwyrm.storage_backends.ExportsFileStorage" diff --git a/bookwyrm/templatetags/utilities.py b/bookwyrm/templatetags/utilities.py index fb2113de4..bc87a60d7 100644 --- a/bookwyrm/templatetags/utilities.py +++ b/bookwyrm/templatetags/utilities.py @@ -120,7 +120,7 @@ def id_to_username(user_id): """given an arbitrary remote id, return the username""" if user_id: url = urlparse(user_id) - domain = url.netloc + domain = url.hostname parts = url.path.split("/") name = parts[-1] value = f"{name}@{domain}" diff --git a/bookwyrm/tests/test_signing.py b/bookwyrm/tests/test_signing.py index e41548bcf..79370844a 100644 --- a/bookwyrm/tests/test_signing.py +++ b/bookwyrm/tests/test_signing.py @@ -15,7 +15,7 @@ from django.utils.http import http_date from bookwyrm import models from bookwyrm.activitypub import Follow -from bookwyrm.settings import DOMAIN +from bookwyrm.settings import DOMAIN, NETLOC from bookwyrm.signatures import create_key_pair, make_signature, make_digest @@ -77,7 +77,7 @@ class Signature(TestCase): "HTTP_SIGNATURE": signature, "HTTP_DIGEST": digest, "HTTP_CONTENT_TYPE": "application/activity+json; charset=utf-8", - "HTTP_HOST": DOMAIN, + "HTTP_HOST": NETLOC, }, ) diff --git a/pytest.ini b/pytest.ini index 2988a7dc5..b963fb316 100644 --- a/pytest.ini +++ b/pytest.ini @@ -11,6 +11,7 @@ env = DEBUG = false USE_HTTPS = true DOMAIN = your.domain.here + PORT = 4242 ALLOWED_HOSTS = your.domain.here BOOKWYRM_DATABASE_BACKEND = postgres MEDIA_ROOT = images/ From c42db40a63a1a87b66ad349ac86e2823d60a1bd7 Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Sun, 7 Apr 2024 17:22:29 +0200 Subject: [PATCH 4/6] Construct absolute URLs with the correct protocol and port --- bookwyrm/emailing.py | 3 +- bookwyrm/models/site.py | 6 +-- bookwyrm/models/user.py | 5 +- bookwyrm/templates/email/html_layout.html | 8 +-- .../templates/email/invite/html_content.html | 2 +- .../templates/email/invite/text_content.html | 2 +- bookwyrm/templates/opensearch.xml | 2 +- bookwyrm/tests/models/test_fields.py | 14 +++--- bookwyrm/tests/models/test_site.py | 4 +- bookwyrm/tests/models/test_status_model.py | 50 +++++++------------ bookwyrm/tests/test_utils.py | 7 ++- bookwyrm/tests/views/test_helpers.py | 10 ++-- bookwyrm/utils/validate.py | 11 ++-- bookwyrm/views/wellknown.py | 4 +- 14 files changed, 55 insertions(+), 73 deletions(-) diff --git a/bookwyrm/emailing.py b/bookwyrm/emailing.py index 5e08ebba1..ccc0aea61 100644 --- a/bookwyrm/emailing.py +++ b/bookwyrm/emailing.py @@ -4,7 +4,7 @@ from django.template.loader import get_template from bookwyrm import models, settings from bookwyrm.tasks import app, EMAIL -from bookwyrm.settings import DOMAIN +from bookwyrm.settings import DOMAIN, BASE_URL def email_data(): @@ -14,6 +14,7 @@ def email_data(): "site_name": site.name, "logo": site.logo_small_url, "domain": DOMAIN, + "base_url": BASE_URL, "user": None, } diff --git a/bookwyrm/models/site.py b/bookwyrm/models/site.py index 201a499e5..36e6bb128 100644 --- a/bookwyrm/models/site.py +++ b/bookwyrm/models/site.py @@ -12,7 +12,7 @@ from model_utils import FieldTracker from bookwyrm.connectors.abstract_connector import get_data from bookwyrm.preview_images import generate_site_preview_image_task -from bookwyrm.settings import DOMAIN, ENABLE_PREVIEW_IMAGES, STATIC_FULL_URL +from bookwyrm.settings import BASE_URL, ENABLE_PREVIEW_IMAGES, STATIC_FULL_URL from bookwyrm.settings import RELEASE_API from bookwyrm.tasks import app, MISC from .base_model import BookWyrmModel, new_access_code @@ -188,7 +188,7 @@ class SiteInvite(models.Model): @property def link(self): """formats the invite link""" - return f"https://{DOMAIN}/invite/{self.code}" + return f"{BASE_URL}/invite/{self.code}" class InviteRequest(BookWyrmModel): @@ -235,7 +235,7 @@ class PasswordReset(models.Model): @property def link(self): """formats the invite link""" - return f"https://{DOMAIN}/password-reset/{self.code}" + return f"{BASE_URL}/password-reset/{self.code}" # pylint: disable=unused-argument diff --git a/bookwyrm/models/user.py b/bookwyrm/models/user.py index 8db9af7b6..f793d61b8 100644 --- a/bookwyrm/models/user.py +++ b/bookwyrm/models/user.py @@ -19,7 +19,7 @@ from bookwyrm.connectors import get_data, ConnectorException from bookwyrm.models.shelf import Shelf from bookwyrm.models.status import Status from bookwyrm.preview_images import generate_user_preview_image_task -from bookwyrm.settings import DOMAIN, ENABLE_PREVIEW_IMAGES, USE_HTTPS, LANGUAGES +from bookwyrm.settings import BASE_URL, DOMAIN, ENABLE_PREVIEW_IMAGES, USE_HTTPS, LANGUAGES from bookwyrm.signatures import create_key_pair from bookwyrm.tasks import app, MISC from bookwyrm.utils import regex @@ -214,8 +214,7 @@ class User(OrderedCollectionPageMixin, AbstractUser): @property def confirmation_link(self): """helper for generating confirmation links""" - link = site_link() - return f"{link}/confirm-email/{self.confirmation_code}" + return f"{BASE_URL}/confirm-email/{self.confirmation_code}" @property def following_link(self): diff --git a/bookwyrm/templates/email/html_layout.html b/bookwyrm/templates/email/html_layout.html index b9f88732f..467d6d6e5 100644 --- a/bookwyrm/templates/email/html_layout.html +++ b/bookwyrm/templates/email/html_layout.html @@ -2,10 +2,10 @@
@@ -18,9 +18,9 @@
-

{% blocktrans %}BookWyrm hosted on {{ site_name }}{% endblocktrans %}

+

{% blocktrans %}BookWyrm hosted on {{ site_name }}{% endblocktrans %}

{% if user %} -

{% trans "Email preference" %}

+

{% trans "Email preference" %}

{% endif %}
diff --git a/bookwyrm/templates/email/invite/html_content.html b/bookwyrm/templates/email/invite/html_content.html index adc993b7b..9d2cda364 100644 --- a/bookwyrm/templates/email/invite/html_content.html +++ b/bookwyrm/templates/email/invite/html_content.html @@ -12,6 +12,6 @@

{% url 'code-of-conduct' as coc_path %} {% url 'about' as about_path %} - {% blocktrans %}Learn more about {{ site_name }}.{% endblocktrans %} + {% blocktrans %}Learn more about {{ site_name }}.{% endblocktrans %}

{% endblock %} diff --git a/bookwyrm/templates/email/invite/text_content.html b/bookwyrm/templates/email/invite/text_content.html index 26dcd1720..05fe91456 100644 --- a/bookwyrm/templates/email/invite/text_content.html +++ b/bookwyrm/templates/email/invite/text_content.html @@ -5,6 +5,6 @@ {{ invite_link }} -{% blocktrans %}Learn more about {{ site_name }}:{% endblocktrans %} https://{{ domain }}{% url 'about' %} +{% blocktrans %}Learn more about {{ site_name }}:{% endblocktrans %} {{ base_url }}{% url 'about' %} {% endblock %} diff --git a/bookwyrm/templates/opensearch.xml b/bookwyrm/templates/opensearch.xml index fd5c8f231..980ca5604 100644 --- a/bookwyrm/templates/opensearch.xml +++ b/bookwyrm/templates/opensearch.xml @@ -10,6 +10,6 @@ {{ image }} diff --git a/bookwyrm/tests/models/test_fields.py b/bookwyrm/tests/models/test_fields.py index 2917c8908..7c1dcadc9 100644 --- a/bookwyrm/tests/models/test_fields.py +++ b/bookwyrm/tests/models/test_fields.py @@ -4,7 +4,7 @@ from dataclasses import dataclass import datetime import json import pathlib -import re +from urllib.parse import urlparse from typing import List from unittest import expectedFailure from unittest.mock import patch @@ -22,7 +22,7 @@ from bookwyrm.activitypub.base_activity import ActivityObject from bookwyrm.models import fields, User, Status, Edition from bookwyrm.models.base_model import BookWyrmModel from bookwyrm.models.activitypub_mixin import ActivitypubMixin -from bookwyrm.settings import DOMAIN +from bookwyrm.settings import PROTOCOL, NETLOC # pylint: disable=too-many-public-methods @patch("bookwyrm.suggested_users.rerank_suggestions_task.delay") @@ -427,12 +427,10 @@ class ModelFields(TestCase): instance = fields.ImageField() output = instance.field_to_activity(user.avatar) - self.assertIsNotNone( - re.match( - rf"https:\/\/{DOMAIN}\/.*\.jpg", - output.url, - ) - ) + parsed_url = urlparse(output.url) + self.assertEqual(parsed_url.scheme, PROTOCOL) + self.assertEqual(parsed_url.netloc, NETLOC) + self.assertRegex(parsed_url.path, r"\.jpg$") self.assertEqual(output.name, "") self.assertEqual(output.type, "Image") diff --git a/bookwyrm/tests/models/test_site.py b/bookwyrm/tests/models/test_site.py index 0933dac0c..c9f9a1315 100644 --- a/bookwyrm/tests/models/test_site.py +++ b/bookwyrm/tests/models/test_site.py @@ -79,7 +79,7 @@ class SiteModels(TestCase): def test_site_invite_link(self): """invite link generator""" invite = models.SiteInvite.objects.create(user=self.local_user, code="hello") - self.assertEqual(invite.link, f"https://{settings.DOMAIN}/invite/hello") + self.assertEqual(invite.link, f"{settings.BASE_URL}/invite/hello") def test_invite_request(self): """someone wants an invite""" @@ -95,7 +95,7 @@ class SiteModels(TestCase): """password reset token""" token = models.PasswordReset.objects.create(user=self.local_user, code="hello") self.assertTrue(token.valid()) - self.assertEqual(token.link, f"https://{settings.DOMAIN}/password-reset/hello") + self.assertEqual(token.link, f"{settings.BASE_URL}/password-reset/hello") @patch("bookwyrm.suggested_users.rerank_suggestions_task.delay") @patch("bookwyrm.suggested_users.remove_user_task.delay") diff --git a/bookwyrm/tests/models/test_status_model.py b/bookwyrm/tests/models/test_status_model.py index 6323eeca3..2fede3684 100644 --- a/bookwyrm/tests/models/test_status_model.py +++ b/bookwyrm/tests/models/test_status_model.py @@ -227,11 +227,9 @@ class Status(TestCase): self.assertEqual(activity["sensitive"], False) self.assertIsInstance(activity["attachment"], list) self.assertEqual(activity["attachment"][0]["type"], "Document") - self.assertTrue( - re.match( - r"https:\/\/your.domain.here\/images\/covers\/test(_[A-z0-9]+)?.jpg", - activity["attachment"][0]["url"], - ) + self.assertRegex( + activity["attachment"][0]["url"], + rf"^{settings.BASE_URL}/images/covers/test(_[A-z0-9]+)?.jpg$", ) self.assertEqual(activity["attachment"][0]["name"], "Test Edition") @@ -263,12 +261,10 @@ class Status(TestCase): ), ) self.assertEqual(activity["attachment"][0]["type"], "Document") - # self.assertTrue( - # re.match( - # r"https:\/\/your.domain.here\/images\/covers\/test_[A-z0-9]+.jpg", - # activity["attachment"][0].url, - # ) - # ) + self.assertRegex( + activity["attachment"][0]["url"], + rf"^{settings.BASE_URL}/images/covers/test_[A-z0-9]+.jpg$", + ) self.assertEqual(activity["attachment"][0]["name"], "Test Edition") def test_quotation_to_activity(self, *_): @@ -306,11 +302,9 @@ class Status(TestCase): ), ) self.assertEqual(activity["attachment"][0]["type"], "Document") - self.assertTrue( - re.match( - r"https:\/\/your.domain.here\/images\/covers\/test(_[A-z0-9]+)?.jpg", - activity["attachment"][0]["url"], - ) + self.assertRegex( + activity["attachment"][0]["url"], + rf"^{settings.BASE_URL}/images/covers/test(_[A-z0-9]+)?.jpg$", ) self.assertEqual(activity["attachment"][0]["name"], "Test Edition") @@ -400,11 +394,9 @@ class Status(TestCase): ) self.assertEqual(activity["content"], "test content") self.assertEqual(activity["attachment"][0]["type"], "Document") - self.assertTrue( - re.match( - r"https:\/\/your.domain.here\/images\/covers\/test_[A-z0-9]+.jpg", - activity["attachment"][0]["url"], - ) + self.assertRegex( + activity["attachment"][0]["url"], + rf"^{settings.BASE_URL}/images/covers/test_[A-z0-9]+.jpg$", ) self.assertEqual(activity["attachment"][0]["name"], "Test Edition") @@ -425,11 +417,9 @@ class Status(TestCase): ) self.assertEqual(activity["content"], "test content") self.assertEqual(activity["attachment"][0]["type"], "Document") - self.assertTrue( - re.match( - r"https:\/\/your.domain.here\/images\/covers\/test_[A-z0-9]+.jpg", - activity["attachment"][0]["url"], - ) + self.assertRegex( + activity["attachment"][0]["url"], + rf"^{settings.BASE_URL}/images/covers/test_[A-z0-9]+.jpg$", ) self.assertEqual(activity["attachment"][0]["name"], "Test Edition") @@ -448,11 +438,9 @@ class Status(TestCase): f'rated {self.book.title}: 3 stars', ) self.assertEqual(activity["attachment"][0]["type"], "Document") - self.assertTrue( - re.match( - r"https:\/\/your.domain.here\/images\/covers\/test_[A-z0-9]+.jpg", - activity["attachment"][0]["url"], - ) + self.assertRegex( + activity["attachment"][0]["url"], + rf"^{settings.BASE_URL}/images/covers/test_[A-z0-9]+.jpg$", ) self.assertEqual(activity["attachment"][0]["name"], "Test Edition") diff --git a/bookwyrm/tests/test_utils.py b/bookwyrm/tests/test_utils.py index ed62050a8..438eb1dd3 100644 --- a/bookwyrm/tests/test_utils.py +++ b/bookwyrm/tests/test_utils.py @@ -2,6 +2,7 @@ import re from django.test import TestCase +from bookwyrm.settings import BASE_URL from bookwyrm.utils import regex from bookwyrm.utils.validate import validate_url_domain @@ -15,10 +16,8 @@ class TestUtils(TestCase): def test_valid_url_domain(self): """Check with a valid URL""" - self.assertEqual( - validate_url_domain("https://your.domain.here/legit-book-url/"), - "https://your.domain.here/legit-book-url/", - ) + legit = f"{BASE_URL}/legit-book-url/" + self.assertEqual(validate_url_domain(legit), legit) def test_invalid_url_domain(self): """Check with an invalid URL""" diff --git a/bookwyrm/tests/views/test_helpers.py b/bookwyrm/tests/views/test_helpers.py index 818647db1..a1c06bede 100644 --- a/bookwyrm/tests/views/test_helpers.py +++ b/bookwyrm/tests/views/test_helpers.py @@ -8,7 +8,7 @@ from django.test.client import RequestFactory import responses from bookwyrm import models, views -from bookwyrm.settings import USER_AGENT, DOMAIN +from bookwyrm.settings import USER_AGENT, BASE_URL @patch("bookwyrm.activitystreams.add_status_task.delay") @@ -288,13 +288,13 @@ class ViewsHelpers(TestCase): # pylint: disable=too-many-public-methods def test_redirect_to_referer_valid_domain(self, *_): """redirect to within the app""" request = self.factory.get("/path") - request.META = {"HTTP_REFERER": f"https://{DOMAIN}/and/a/path"} + request.META = {"HTTP_REFERER": f"{BASE_URL}/and/a/path"} result = views.helpers.redirect_to_referer(request) - self.assertEqual(result.url, f"https://{DOMAIN}/and/a/path") + self.assertEqual(result.url, f"{BASE_URL}/and/a/path") def test_redirect_to_referer_with_get_args(self, *_): """if the path has get params (like sort) they are preserved""" request = self.factory.get("/path") - request.META = {"HTTP_REFERER": f"https://{DOMAIN}/and/a/path?sort=hello"} + request.META = {"HTTP_REFERER": f"{BASE_URL}/and/a/path?sort=hello"} result = views.helpers.redirect_to_referer(request) - self.assertEqual(result.url, f"https://{DOMAIN}/and/a/path?sort=hello") + self.assertEqual(result.url, f"{BASE_URL}/and/a/path?sort=hello") diff --git a/bookwyrm/utils/validate.py b/bookwyrm/utils/validate.py index 459bc70a6..962d51a4e 100644 --- a/bookwyrm/utils/validate.py +++ b/bookwyrm/utils/validate.py @@ -1,7 +1,7 @@ """Validations""" from typing import Optional -from bookwyrm.settings import DOMAIN, USE_HTTPS +from bookwyrm.settings import BASE_URL def validate_url_domain(url: Optional[str]) -> Optional[str]: @@ -9,10 +9,7 @@ def validate_url_domain(url: Optional[str]) -> Optional[str]: if url is None: return None - protocol = "https://" if USE_HTTPS else "http://" - origin = f"{protocol}{DOMAIN}" + if not url.startswith(BASE_URL): + return None - if url.startswith(origin): - return url - - return None + return url diff --git a/bookwyrm/views/wellknown.py b/bookwyrm/views/wellknown.py index 0f2805ff2..e640c1c72 100644 --- a/bookwyrm/views/wellknown.py +++ b/bookwyrm/views/wellknown.py @@ -9,7 +9,7 @@ from django.utils import timezone from django.views.decorators.http import require_GET from bookwyrm import models -from bookwyrm.settings import DOMAIN, VERSION, LANGUAGE_CODE +from bookwyrm.settings import BASE_URL, DOMAIN, VERSION, LANGUAGE_CODE @require_GET @@ -34,7 +34,7 @@ def webfinger(request): }, { "rel": "http://ostatus.org/schema/1.0/subscribe", - "template": f"https://{DOMAIN}/ostatus_subscribe?acct={{uri}}", + "template": f"{BASE_URL}/ostatus_subscribe?acct={{uri}}", }, ], } From 609bc15406a5a728d673b628a839a43386f496e9 Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Sun, 7 Apr 2024 17:31:14 +0200 Subject: [PATCH 5/6] Support http:// protocol in BookWyrm connector --- bookwyrm/connectors/connector_manager.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/bookwyrm/connectors/connector_manager.py b/bookwyrm/connectors/connector_manager.py index bdea00719..1e1b3b554 100644 --- a/bookwyrm/connectors/connector_manager.py +++ b/bookwyrm/connectors/connector_manager.py @@ -122,16 +122,18 @@ def get_or_create_connector(remote_id: str) -> abstract_connector.AbstractConnec if not identifier: raise ValueError(f"Invalid remote id: {remote_id}") + base_url = f"{url.scheme}://{url.netloc}" + try: connector_info = models.Connector.objects.get(identifier=identifier) except models.Connector.DoesNotExist: connector_info = models.Connector.objects.create( identifier=identifier, connector_file="bookwyrm_connector", - base_url=f"https://{identifier}", - books_url=f"https://{identifier}/book", - covers_url=f"https://{identifier}/images/covers", - search_url=f"https://{identifier}/search?q=", + base_url=base_url, + books_url=f"{base_url}/book", + covers_url=f"{base_url}/images/covers", + search_url=f"{base_url}/search?q=", priority=2, ) From 4f58b113309843757b5463b714a71d2c4631876a Mon Sep 17 00:00:00 2001 From: Bart Schuurmans Date: Sun, 7 Apr 2024 17:32:35 +0200 Subject: [PATCH 6/6] Include the correct protocol and port in remote IDs --- bookwyrm/models/author.py | 4 ++-- bookwyrm/models/base_model.py | 6 +++--- bookwyrm/models/book.py | 4 ++-- bookwyrm/models/group.py | 4 ++-- bookwyrm/models/list.py | 4 ++-- bookwyrm/models/report.py | 4 ++-- bookwyrm/models/shelf.py | 4 ++-- bookwyrm/models/user.py | 13 +++---------- .../connectors/test_abstract_connector.py | 8 +++----- bookwyrm/tests/data/ap_user_move.json | 6 ++++-- .../tests/data/bookwyrm_account_export.tar.gz | Bin 104793 -> 104717 bytes bookwyrm/tests/data/user_import.json | 6 +++--- bookwyrm/tests/models/test_base_model.py | 8 ++++---- bookwyrm/tests/models/test_book_model.py | 2 +- bookwyrm/tests/models/test_list.py | 2 +- bookwyrm/tests/models/test_shelf_model.py | 2 +- bookwyrm/tests/models/test_status_model.py | 4 ++-- bookwyrm/tests/models/test_user_model.py | 13 +++++-------- bookwyrm/tests/views/preferences/test_move.py | 2 -- bookwyrm/tests/views/test_isbn.py | 4 ++-- bookwyrm/tests/views/test_search.py | 4 ++-- 21 files changed, 46 insertions(+), 58 deletions(-) diff --git a/bookwyrm/models/author.py b/bookwyrm/models/author.py index 70f85b3c8..abe78dafb 100644 --- a/bookwyrm/models/author.py +++ b/bookwyrm/models/author.py @@ -8,7 +8,7 @@ from django.contrib.postgres.indexes import GinIndex import pgtrigger from bookwyrm import activitypub -from bookwyrm.settings import DOMAIN +from bookwyrm.settings import BASE_URL from bookwyrm.utils.db import format_trigger from .book import BookDataModel, MergedAuthor @@ -70,7 +70,7 @@ class Author(BookDataModel): def get_remote_id(self): """editions and works both use "book" instead of model_name""" - return f"https://{DOMAIN}/author/{self.id}" + return f"{BASE_URL}/author/{self.id}" class Meta: """sets up indexes and triggers""" diff --git a/bookwyrm/models/base_model.py b/bookwyrm/models/base_model.py index 2d39e2a6f..ca13d9553 100644 --- a/bookwyrm/models/base_model.py +++ b/bookwyrm/models/base_model.py @@ -10,7 +10,7 @@ from django.http import Http404 from django.utils.translation import gettext_lazy as _ from django.utils.text import slugify -from bookwyrm.settings import DOMAIN +from bookwyrm.settings import BASE_URL from .fields import RemoteIdField @@ -38,7 +38,7 @@ class BookWyrmModel(models.Model): def get_remote_id(self): """generate the url that resolves to the local object, without a slug""" - base_path = f"https://{DOMAIN}" + base_path = BASE_URL if hasattr(self, "user"): base_path = f"{base_path}{self.user.local_path}" @@ -53,7 +53,7 @@ class BookWyrmModel(models.Model): @property def local_path(self): """how to link to this object in the local app, with a slug""" - local = self.get_remote_id().replace(f"https://{DOMAIN}", "") + local = self.get_remote_id().replace(BASE_URL, "") name = None if hasattr(self, "name_field"): diff --git a/bookwyrm/models/book.py b/bookwyrm/models/book.py index 6075d2c92..8e957b717 100644 --- a/bookwyrm/models/book.py +++ b/bookwyrm/models/book.py @@ -21,7 +21,7 @@ from bookwyrm import activitypub from bookwyrm.isbn.isbn import hyphenator_singleton as hyphenator from bookwyrm.preview_images import generate_edition_preview_image_task from bookwyrm.settings import ( - DOMAIN, + BASE_URL, DEFAULT_LANGUAGE, LANGUAGE_ARTICLES, ENABLE_PREVIEW_IMAGES, @@ -327,7 +327,7 @@ class Book(BookDataModel): def get_remote_id(self): """editions and works both use "book" instead of model_name""" - return f"https://{DOMAIN}/book/{self.id}" + return f"{BASE_URL}/book/{self.id}" def guess_sort_title(self): """Get a best-guess sort title for the current book""" diff --git a/bookwyrm/models/group.py b/bookwyrm/models/group.py index d02b56ab1..40a32b5dc 100644 --- a/bookwyrm/models/group.py +++ b/bookwyrm/models/group.py @@ -1,7 +1,7 @@ """ do book related things with other users """ from django.db import models, IntegrityError, transaction from django.db.models import Q -from bookwyrm.settings import DOMAIN +from bookwyrm.settings import BASE_URL from .base_model import BookWyrmModel from . import fields from .relationship import UserBlocks @@ -17,7 +17,7 @@ class Group(BookWyrmModel): def get_remote_id(self): """don't want the user to be in there in this case""" - return f"https://{DOMAIN}/group/{self.id}" + return f"{BASE_URL}/group/{self.id}" @classmethod def followers_filter(cls, queryset, viewer): diff --git a/bookwyrm/models/list.py b/bookwyrm/models/list.py index 63dd5b23f..d32a8da95 100644 --- a/bookwyrm/models/list.py +++ b/bookwyrm/models/list.py @@ -7,7 +7,7 @@ from django.db.models import Q from django.utils import timezone from bookwyrm import activitypub -from bookwyrm.settings import DOMAIN +from bookwyrm.settings import BASE_URL from .activitypub_mixin import CollectionItemMixin, OrderedCollectionMixin from .base_model import BookWyrmModel @@ -50,7 +50,7 @@ class List(OrderedCollectionMixin, BookWyrmModel): def get_remote_id(self): """don't want the user to be in there in this case""" - return f"https://{DOMAIN}/list/{self.id}" + return f"{BASE_URL}/list/{self.id}" @property def collection_queryset(self): diff --git a/bookwyrm/models/report.py b/bookwyrm/models/report.py index 74a9bbe41..64ade3a40 100644 --- a/bookwyrm/models/report.py +++ b/bookwyrm/models/report.py @@ -3,7 +3,7 @@ from django.core.exceptions import PermissionDenied from django.db import models from django.utils.translation import gettext_lazy as _ -from bookwyrm.settings import DOMAIN +from bookwyrm.settings import BASE_URL from .base_model import BookWyrmModel @@ -46,7 +46,7 @@ class Report(BookWyrmModel): raise PermissionDenied() def get_remote_id(self): - return f"https://{DOMAIN}/settings/reports/{self.id}" + return f"{BASE_URL}/settings/reports/{self.id}" def comment(self, user, note): """comment on a report""" diff --git a/bookwyrm/models/shelf.py b/bookwyrm/models/shelf.py index 3d92f8d43..4b4e3cd8d 100644 --- a/bookwyrm/models/shelf.py +++ b/bookwyrm/models/shelf.py @@ -6,7 +6,7 @@ from django.db import models from django.utils import timezone from bookwyrm import activitypub -from bookwyrm.settings import DOMAIN +from bookwyrm.settings import BASE_URL from bookwyrm.tasks import BROADCAST from .activitypub_mixin import CollectionItemMixin, OrderedCollectionMixin from .base_model import BookWyrmModel @@ -71,7 +71,7 @@ class Shelf(OrderedCollectionMixin, BookWyrmModel): @property def local_path(self): """No slugs""" - return self.get_remote_id().replace(f"https://{DOMAIN}", "") + return self.get_remote_id().replace(BASE_URL, "") def raise_not_deletable(self, viewer): """don't let anyone delete a default shelf""" diff --git a/bookwyrm/models/user.py b/bookwyrm/models/user.py index f793d61b8..e2671b07f 100644 --- a/bookwyrm/models/user.py +++ b/bookwyrm/models/user.py @@ -19,7 +19,7 @@ from bookwyrm.connectors import get_data, ConnectorException from bookwyrm.models.shelf import Shelf from bookwyrm.models.status import Status from bookwyrm.preview_images import generate_user_preview_image_task -from bookwyrm.settings import BASE_URL, DOMAIN, ENABLE_PREVIEW_IMAGES, USE_HTTPS, LANGUAGES +from bookwyrm.settings import BASE_URL, ENABLE_PREVIEW_IMAGES, LANGUAGES from bookwyrm.signatures import create_key_pair from bookwyrm.tasks import app, MISC from bookwyrm.utils import regex @@ -42,12 +42,6 @@ def get_feed_filter_choices(): return [f[0] for f in FeedFilterChoices] -def site_link(): - """helper for generating links to the site""" - protocol = "https" if USE_HTTPS else "http" - return f"{protocol}://{DOMAIN}" - - # pylint: disable=too-many-public-methods class User(OrderedCollectionPageMixin, AbstractUser): """a user who wants to read books""" @@ -368,11 +362,10 @@ class User(OrderedCollectionPageMixin, AbstractUser): with transaction.atomic(): # populate fields for local users - link = site_link() - self.remote_id = f"{link}/user/{self.localname}" + self.remote_id = f"{BASE_URL}/user/{self.localname}" self.followers_url = f"{self.remote_id}/followers" self.inbox = f"{self.remote_id}/inbox" - self.shared_inbox = f"{link}/inbox" + self.shared_inbox = f"{BASE_URL}/inbox" self.outbox = f"{self.remote_id}/outbox" # an id needs to be set before we can proceed with related models diff --git a/bookwyrm/tests/connectors/test_abstract_connector.py b/bookwyrm/tests/connectors/test_abstract_connector.py index 994286994..1a8421c12 100644 --- a/bookwyrm/tests/connectors/test_abstract_connector.py +++ b/bookwyrm/tests/connectors/test_abstract_connector.py @@ -6,7 +6,7 @@ import responses from bookwyrm import models from bookwyrm.connectors import abstract_connector, ConnectorException from bookwyrm.connectors.abstract_connector import Mapping, get_data -from bookwyrm.settings import DOMAIN +from bookwyrm.settings import BASE_URL class AbstractConnector(TestCase): @@ -86,7 +86,7 @@ class AbstractConnector(TestCase): def test_get_or_create_book_existing(self): """find an existing book by remote/origin id""" self.assertEqual(models.Book.objects.count(), 1) - self.assertEqual(self.book.remote_id, f"https://{DOMAIN}/book/{self.book.id}") + self.assertEqual(self.book.remote_id, f"{BASE_URL}/book/{self.book.id}") self.assertEqual(self.book.origin_id, "https://example.com/book/1234") # dedupe by origin id @@ -95,9 +95,7 @@ class AbstractConnector(TestCase): self.assertEqual(result, self.book) # dedupe by remote id - result = self.connector.get_or_create_book( - f"https://{DOMAIN}/book/{self.book.id}" - ) + result = self.connector.get_or_create_book(f"{BASE_URL}/book/{self.book.id}") self.assertEqual(models.Book.objects.count(), 1) self.assertEqual(result, self.book) diff --git a/bookwyrm/tests/data/ap_user_move.json b/bookwyrm/tests/data/ap_user_move.json index 52de40a68..11b10ded1 100644 --- a/bookwyrm/tests/data/ap_user_move.json +++ b/bookwyrm/tests/data/ap_user_move.json @@ -29,7 +29,9 @@ "bookwyrmUser": true, "manuallyApprovesFollowers": false, "discoverable": false, - "alsoKnownAs": ["https://your.domain.here/user/rat"], + "alsoKnownAs": [ + "https://your.domain.here:4242/user/rat" + ], "devices": "https://friend.camp/users/tripofmice/collections/devices", "tag": [], "icon": { @@ -37,4 +39,4 @@ "mediaType": "image/png", "url": "https://example.com/images/avatars/AL-2-crop-50.png" } -} +} \ No newline at end of file diff --git a/bookwyrm/tests/data/bookwyrm_account_export.tar.gz b/bookwyrm/tests/data/bookwyrm_account_export.tar.gz index 34cee6bc001a7d834d45506100a98c1b01bcefa2..d7bc5634b0456cf7b3ad61a76800b714e1eab8d5 100644 GIT binary patch literal 104717 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 like it

", "to": [ - "https://your.domain.here/user/rat/followers" + "https://your.domain.here:4242/user/rat/followers" ], "cc": [], "replies": { @@ -395,7 +395,7 @@ "https://local.lists/9999" ], "follows": [ - "https://your.domain.here/user/rat" + "https://your.domain.here:4242/user/rat" ], - "blocks": ["https://your.domain.here/user/badger"] + "blocks": ["https://your.domain.here:4242/user/badger"] } diff --git a/bookwyrm/tests/models/test_base_model.py b/bookwyrm/tests/models/test_base_model.py index d666b0e46..f16bdfa78 100644 --- a/bookwyrm/tests/models/test_base_model.py +++ b/bookwyrm/tests/models/test_base_model.py @@ -5,7 +5,7 @@ from django.test import TestCase from bookwyrm import models from bookwyrm.models import base_model -from bookwyrm.settings import DOMAIN +from bookwyrm.settings import BASE_URL # pylint: disable=attribute-defined-outside-init @@ -44,14 +44,14 @@ class BaseModel(TestCase): """these should be generated""" self.test_model.id = 1 # pylint: disable=invalid-name expected = self.test_model.get_remote_id() - self.assertEqual(expected, f"https://{DOMAIN}/bookwyrmtestmodel/1") + self.assertEqual(expected, f"{BASE_URL}/bookwyrmtestmodel/1") def test_remote_id_with_user(self): """format of remote id when there's a user object""" self.test_model.user = self.local_user self.test_model.id = 1 expected = self.test_model.get_remote_id() - self.assertEqual(expected, f"https://{DOMAIN}/user/mouse/bookwyrmtestmodel/1") + self.assertEqual(expected, f"{BASE_URL}/user/mouse/bookwyrmtestmodel/1") def test_set_remote_id(self): """this function sets remote ids after creation""" @@ -60,7 +60,7 @@ class BaseModel(TestCase): instance = models.Work.objects.create(title="work title") instance.remote_id = None base_model.set_remote_id(None, instance, True) - self.assertEqual(instance.remote_id, f"https://{DOMAIN}/book/{instance.id}") + self.assertEqual(instance.remote_id, f"{BASE_URL}/book/{instance.id}") # shouldn't set remote_id if it's not created instance.remote_id = None diff --git a/bookwyrm/tests/models/test_book_model.py b/bookwyrm/tests/models/test_book_model.py index 5b2b71ba9..ebb57061d 100644 --- a/bookwyrm/tests/models/test_book_model.py +++ b/bookwyrm/tests/models/test_book_model.py @@ -31,7 +31,7 @@ class Book(TestCase): def test_remote_id(self): """fanciness with remote/origin ids""" - remote_id = f"https://{settings.DOMAIN}/book/{self.work.id}" + remote_id = f"{settings.BASE_URL}/book/{self.work.id}" self.assertEqual(self.work.get_remote_id(), remote_id) self.assertEqual(self.work.remote_id, remote_id) diff --git a/bookwyrm/tests/models/test_list.py b/bookwyrm/tests/models/test_list.py index b9148853b..a902f6cca 100644 --- a/bookwyrm/tests/models/test_list.py +++ b/bookwyrm/tests/models/test_list.py @@ -28,7 +28,7 @@ class List(TestCase): def test_remote_id(self, *_): """shelves use custom remote ids""" book_list = models.List.objects.create(name="Test List", user=self.local_user) - expected_id = f"https://{settings.DOMAIN}/list/{book_list.id}" + expected_id = f"{settings.BASE_URL}/list/{book_list.id}" self.assertEqual(book_list.get_remote_id(), expected_id) def test_to_activity(self, *_): diff --git a/bookwyrm/tests/models/test_shelf_model.py b/bookwyrm/tests/models/test_shelf_model.py index 022cb5c61..d510952ea 100644 --- a/bookwyrm/tests/models/test_shelf_model.py +++ b/bookwyrm/tests/models/test_shelf_model.py @@ -35,7 +35,7 @@ class Shelf(TestCase): shelf = models.Shelf.objects.create( name="Test Shelf", identifier="test-shelf", user=self.local_user ) - expected_id = f"https://{settings.DOMAIN}/user/mouse/books/test-shelf" + expected_id = f"{settings.BASE_URL}/user/mouse/books/test-shelf" self.assertEqual(shelf.get_remote_id(), expected_id) def test_to_activity(self, *_): diff --git a/bookwyrm/tests/models/test_status_model.py b/bookwyrm/tests/models/test_status_model.py index 2fede3684..5837b4188 100644 --- a/bookwyrm/tests/models/test_status_model.py +++ b/bookwyrm/tests/models/test_status_model.py @@ -60,7 +60,7 @@ class Status(TestCase): def test_status_generated_fields(self, *_): """setting remote id""" status = models.Status.objects.create(content="bleh", user=self.local_user) - expected_id = f"https://{settings.DOMAIN}/user/mouse/status/{status.id}" + expected_id = f"{settings.BASE_URL}/user/mouse/status/{status.id}" self.assertEqual(status.remote_id, expected_id) self.assertEqual(status.privacy, "public") @@ -151,7 +151,7 @@ class Status(TestCase): self.assertEqual(activity["tag"][0]["type"], "Hashtag") self.assertEqual(activity["tag"][0]["name"], "#content") self.assertEqual( - activity["tag"][0]["href"], f"https://{settings.DOMAIN}/hashtag/{tag.id}" + activity["tag"][0]["href"], f"{settings.BASE_URL}/hashtag/{tag.id}" ) def test_status_with_mention_to_activity(self, *_): diff --git a/bookwyrm/tests/models/test_user_model.py b/bookwyrm/tests/models/test_user_model.py index 22c7a171b..3147f95e3 100644 --- a/bookwyrm/tests/models/test_user_model.py +++ b/bookwyrm/tests/models/test_user_model.py @@ -9,15 +9,12 @@ import responses from bookwyrm import models from bookwyrm.management.commands import initdb -from bookwyrm.settings import USE_HTTPS, DOMAIN +from bookwyrm.settings import DOMAIN, BASE_URL # pylint: disable=missing-class-docstring # pylint: disable=missing-function-docstring class User(TestCase): - - protocol = "https://" if USE_HTTPS else "http://" - @classmethod def setUpTestData(cls): with ( @@ -49,11 +46,11 @@ class User(TestCase): def test_computed_fields(self): """username instead of id here""" - expected_id = f"{self.protocol}{DOMAIN}/user/mouse" + expected_id = f"{BASE_URL}/user/mouse" self.assertEqual(self.user.remote_id, expected_id) self.assertEqual(self.user.username, f"mouse@{DOMAIN}") self.assertEqual(self.user.localname, "mouse") - self.assertEqual(self.user.shared_inbox, f"{self.protocol}{DOMAIN}/inbox") + self.assertEqual(self.user.shared_inbox, f"{BASE_URL}/inbox") self.assertEqual(self.user.inbox, f"{expected_id}/inbox") self.assertEqual(self.user.outbox, f"{expected_id}/outbox") self.assertEqual(self.user.followers_url, f"{expected_id}/followers") @@ -130,7 +127,7 @@ class User(TestCase): patch("bookwyrm.lists_stream.populate_lists_task.delay"), ): user = models.User.objects.create_user( - f"test2{DOMAIN}", + "test2", "test2@bookwyrm.test", localname="test2", **user_attrs, @@ -145,7 +142,7 @@ class User(TestCase): patch("bookwyrm.lists_stream.populate_lists_task.delay"), ): user = models.User.objects.create_user( - f"test1{DOMAIN}", + "test1", "test1@bookwyrm.test", localname="test1", **user_attrs, diff --git a/bookwyrm/tests/views/preferences/test_move.py b/bookwyrm/tests/views/preferences/test_move.py index acd2f4a2d..15edf3638 100644 --- a/bookwyrm/tests/views/preferences/test_move.py +++ b/bookwyrm/tests/views/preferences/test_move.py @@ -27,7 +27,6 @@ class ViewsHelpers(TestCase): patch("bookwyrm.lists_stream.populate_lists_task.delay"), patch("bookwyrm.suggested_users.rerank_user_task.delay"), ): - cls.local_user = models.User.objects.create_user( "rat", "rat@rat.com", @@ -35,7 +34,6 @@ class ViewsHelpers(TestCase): local=True, discoverable=True, localname="rat", - remote_id="https://your.domain.here/user/rat", ) with ( diff --git a/bookwyrm/tests/views/test_isbn.py b/bookwyrm/tests/views/test_isbn.py index 632a831b0..60a81f3a2 100644 --- a/bookwyrm/tests/views/test_isbn.py +++ b/bookwyrm/tests/views/test_isbn.py @@ -8,7 +8,7 @@ from django.test.client import RequestFactory from bookwyrm import models, views from bookwyrm.tests.validate_html import validate_html -from bookwyrm.settings import DOMAIN +from bookwyrm.settings import BASE_URL class IsbnViews(TestCase): @@ -55,7 +55,7 @@ class IsbnViews(TestCase): data = json.loads(response.content) self.assertEqual(len(data), 1) self.assertEqual(data[0]["title"], "Test Book") - self.assertEqual(data[0]["key"], f"https://{DOMAIN}/book/{self.book.id}") + self.assertEqual(data[0]["key"], f"{BASE_URL}/book/{self.book.id}") def test_isbn_html_response(self): """searches local data only and returns book data in json format""" diff --git a/bookwyrm/tests/views/test_search.py b/bookwyrm/tests/views/test_search.py index 64ff68ba8..6c7e41cf3 100644 --- a/bookwyrm/tests/views/test_search.py +++ b/bookwyrm/tests/views/test_search.py @@ -10,7 +10,7 @@ from django.test.client import RequestFactory from bookwyrm import models, views from bookwyrm.book_search import SearchResult -from bookwyrm.settings import DOMAIN +from bookwyrm.settings import BASE_URL from bookwyrm.tests.validate_html import validate_html @@ -57,7 +57,7 @@ class Views(TestCase): data = json.loads(response.content) self.assertEqual(len(data), 1) self.assertEqual(data[0]["title"], "Test Book") - self.assertEqual(data[0]["key"], f"https://{DOMAIN}/book/{self.book.id}") + self.assertEqual(data[0]["key"], f"{BASE_URL}/book/{self.book.id}") def test_search_no_query(self): """just the search page"""