From 759bd4ace2efe793c599cfeee812ece525d6f5f4 Mon Sep 17 00:00:00 2001 From: nate2s Date: Sat, 23 Sep 2023 19:28:18 -0400 Subject: [PATCH 1/3] fix return_appearance typo --- evennia/objects/objects.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/evennia/objects/objects.py b/evennia/objects/objects.py index 4dc15ce729..ffd9e21655 100644 --- a/evennia/objects/objects.py +++ b/evennia/objects/objects.py @@ -212,7 +212,7 @@ class DefaultObject(ObjectDB, metaclass=TypeclassBase): objects = ObjectManager() - # populated by `return_apperance` + # populated by `return_appearance` appearance_template = """ {header} |c{name}|n @@ -1201,7 +1201,7 @@ class DefaultObject(ObjectDB, metaclass=TypeclassBase): self.at_access(result, accessing_obj, access_type, **kwargs) return result - # name and return_apperance hooks + # name and return_appearance hooks def get_display_name(self, looker=None, **kwargs): """ @@ -2111,7 +2111,7 @@ class DefaultObject(ObjectDB, metaclass=TypeclassBase): Notes: This method shouldn't add extra coloring to the names beyond what is already given by the .get_display_name() (and the .name field) already. - Per-type coloring can be applied in `return_apperance`. + Per-type coloring can be applied in `return_appearance`. """ # a mapping {'exits': [...], 'characters': [...], 'things': [...]} From fac36e3d8811fb017a4bb3d3f323bb115ead74ac Mon Sep 17 00:00:00 2001 From: Griatch Date: Sun, 1 Oct 2023 10:41:58 +0200 Subject: [PATCH 2/3] Prepping unit test for later fixes --- evennia/scripts/manager.py | 1 - evennia/scripts/tests.py | 10 ++++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/evennia/scripts/manager.py b/evennia/scripts/manager.py index b0a57df162..c42866aa9e 100644 --- a/evennia/scripts/manager.py +++ b/evennia/scripts/manager.py @@ -4,7 +4,6 @@ The custom manager for Scripts. from django.conf import settings from django.db.models import Q - from evennia.server import signals from evennia.typeclasses.managers import TypeclassManager, TypedObjectManager from evennia.utils.utils import class_from_module, dbid_to_obj, make_iter diff --git a/evennia/scripts/tests.py b/evennia/scripts/tests.py index bd1d245a25..eb5f205d13 100644 --- a/evennia/scripts/tests.py +++ b/evennia/scripts/tests.py @@ -78,26 +78,28 @@ class TestScriptHandler(BaseEvenniaTest): def setUp(self): self.obj, self.errors = DefaultObject.create("test_object") + self.obj.scripts.add(TestingListIntervalScript) def tearDown(self): self.obj.delete() def test_start(self): "Check that ScriptHandler start function works correctly" - self.obj.scripts.add(TestingListIntervalScript) self.num = self.obj.scripts.start(self.obj.scripts.all()[0].key) - self.assertTrue(self.num == 1) + self.assertEqual(self.num, 1) def test_list_script_intervals(self): "Checks that Scripthandler __str__ function lists script intervals correctly" - self.obj.scripts.add(TestingListIntervalScript) self.str = str(self.obj.scripts) self.assertTrue("None/1" in self.str) self.assertTrue("1 repeats" in self.str) + def test_get_all_scripts(self): + "Checks that Scripthandler get_all returns correct number of scripts" + self.assertEqual([script.key for script in self.obj.scripts.all()], ["interval_test"]) + def test_get_script(self): "Checks that Scripthandler get function returns correct script" - self.obj.scripts.add(TestingListIntervalScript) script = self.obj.scripts.get("interval_test") self.assertTrue(bool(script)) From 4619dc8818b216aa14c03d8ad263f1027c111850 Mon Sep 17 00:00:00 2001 From: Griatch Date: Sun, 1 Oct 2023 10:49:42 +0200 Subject: [PATCH 3/3] Fixes in SubscriptionHandler; return subs ordered by pk. --- evennia/comms/comms.py | 3 +-- evennia/comms/models.py | 25 +++++++++++++++---------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/evennia/comms/comms.py b/evennia/comms/comms.py index 9791e5a930..7e370b23f1 100644 --- a/evennia/comms/comms.py +++ b/evennia/comms/comms.py @@ -7,7 +7,6 @@ import re from django.contrib.contenttypes.models import ContentType from django.urls import reverse from django.utils.text import slugify - from evennia.comms.managers import ChannelManager from evennia.comms.models import ChannelDB from evennia.typeclasses.models import TypeclassBase @@ -188,7 +187,7 @@ class DefaultChannel(ChannelDB, metaclass=TypeclassBase): # display listening subscribers in bold string = ", ".join( [ - account.key if account not in listening else "|w%s|n" % account.key + account.key if account not in listening else f"|w{account.key}|n" for account in subs ] ) diff --git a/evennia/comms/models.py b/evennia/comms/models.py index ec6037f23f..80dfa69d79 100644 --- a/evennia/comms/models.py +++ b/evennia/comms/models.py @@ -21,7 +21,6 @@ necessary to easily be able to delete connections on the fly). from django.conf import settings from django.db import models from django.utils import timezone - from evennia.comms import managers from evennia.locks.lockhandler import LockHandler from evennia.typeclasses.models import TypedObject @@ -104,8 +103,10 @@ class Msg(SharedMemoryModel): null=True, blank=True, db_index=True, - help_text="Identifier for single external sender, for use with senders " - "not represented by a regular database model.", + help_text=( + "Identifier for single external sender, for use with senders " + "not represented by a regular database model." + ), ) db_receivers_accounts = models.ManyToManyField( @@ -137,8 +138,10 @@ class Msg(SharedMemoryModel): null=True, blank=True, db_index=True, - help_text="Identifier for single external receiver, for use with recievers " - "not represented by a regular database model.", + help_text=( + "Identifier for single external receiver, for use with recievers " + "not represented by a regular database model." + ), ) # header could be used for meta-info about the message if your system needs @@ -167,8 +170,10 @@ class Msg(SharedMemoryModel): db_tags = models.ManyToManyField( Tag, blank=True, - help_text="tags on this message. Tags are simple string markers to " - "identify, group and alias messages.", + help_text=( + "tags on this message. Tags are simple string markers to " + "identify, group and alias messages." + ), ) # Database manager @@ -518,7 +523,7 @@ class TempMsg: # ------------------------------------------------------------ -class SubscriptionHandler(object): +class SubscriptionHandler: """ This handler manages subscriptions to the channel and hides away which type of entity is @@ -540,13 +545,13 @@ class SubscriptionHandler(object): def _recache(self): self._cache = { account: True - for account in self.obj.db_account_subscriptions.all() + for account in self.obj.db_account_subscriptions.all().order_by("pk") if hasattr(account, "pk") and account.pk } self._cache.update( { obj: True - for obj in self.obj.db_object_subscriptions.all() + for obj in self.obj.db_object_subscriptions.all().order_by("pk") if hasattr(obj, "pk") and obj.pk } )