Fix some task quirks
This commit is contained in:
@@ -298,6 +298,53 @@ class Phase1CommandEngineTests(TestCase):
|
||||
self.assertEqual("skipped", results[0].status)
|
||||
self.assertEqual("reply_required", results[0].error)
|
||||
|
||||
def test_eligible_profile_matches_signal_group_alias_variants(self):
|
||||
self.profile.channel_bindings.all().delete()
|
||||
canonical = PersonIdentifier.objects.create(
|
||||
user=self.user,
|
||||
person=self.person,
|
||||
service="signal",
|
||||
identifier="group.canonical-signal-group",
|
||||
)
|
||||
self.session.identifier = canonical
|
||||
self.session.save(update_fields=["identifier"])
|
||||
CommandChannelBinding.objects.create(
|
||||
profile=self.profile,
|
||||
direction="ingress",
|
||||
service="signal",
|
||||
channel_identifier="group.canonical-signal-group",
|
||||
enabled=True,
|
||||
)
|
||||
msg = Message.objects.create(
|
||||
user=self.user,
|
||||
session=self.session,
|
||||
sender_uuid="",
|
||||
text="#bp#",
|
||||
ts=5500,
|
||||
source_service="signal",
|
||||
source_chat_id="signal-internal-group-id",
|
||||
message_meta={},
|
||||
)
|
||||
PersonIdentifier.objects.create(
|
||||
user=self.user,
|
||||
person=self.person,
|
||||
service="signal",
|
||||
identifier="signal-internal-group-id",
|
||||
)
|
||||
results = async_to_sync(process_inbound_message)(
|
||||
CommandContext(
|
||||
service="signal",
|
||||
channel_identifier="signal-internal-group-id",
|
||||
message_id=str(msg.id),
|
||||
user_id=self.user.id,
|
||||
message_text="#bp#",
|
||||
payload={},
|
||||
)
|
||||
)
|
||||
self.assertEqual(1, len(results))
|
||||
self.assertEqual("skipped", results[0].status)
|
||||
self.assertEqual("reply_required", results[0].error)
|
||||
|
||||
def test_compose_command_options_show_bp_subcommands(self):
|
||||
self.profile.channel_bindings.all().delete()
|
||||
CommandChannelBinding.objects.create(
|
||||
|
||||
@@ -223,6 +223,44 @@ class TasksPagesManagementTests(TestCase):
|
||||
).exists()
|
||||
)
|
||||
|
||||
def test_group_page_does_not_seed_source_for_malformed_whatsapp_asset_path(self):
|
||||
response = self.client.get(
|
||||
reverse(
|
||||
"tasks_group",
|
||||
kwargs={
|
||||
"service": "whatsapp",
|
||||
"identifier": "447777695114/static/js/template_profiler.js",
|
||||
},
|
||||
)
|
||||
)
|
||||
self.assertEqual(200, response.status_code)
|
||||
self.assertFalse(
|
||||
ChatTaskSource.objects.filter(
|
||||
user=self.user,
|
||||
service="whatsapp",
|
||||
channel_identifier__icontains="template_profiler.js",
|
||||
).exists()
|
||||
)
|
||||
|
||||
def test_group_page_does_not_seed_source_for_malformed_signal_asset_path(self):
|
||||
response = self.client.get(
|
||||
reverse(
|
||||
"tasks_group",
|
||||
kwargs={
|
||||
"service": "signal",
|
||||
"identifier": "group.c0VHQTlGMEhRL2V5/static/js/template_profiler.js",
|
||||
},
|
||||
)
|
||||
)
|
||||
self.assertEqual(200, response.status_code)
|
||||
self.assertFalse(
|
||||
ChatTaskSource.objects.filter(
|
||||
user=self.user,
|
||||
service="signal",
|
||||
channel_identifier__icontains="template_profiler.js",
|
||||
).exists()
|
||||
)
|
||||
|
||||
def test_tasks_hub_shows_human_creator_label(self):
|
||||
project = TaskProject.objects.create(user=self.user, name="Creator Test")
|
||||
session = ChatSession.objects.create(user=self.user, identifier=self.pid_signal)
|
||||
|
||||
@@ -236,6 +236,44 @@ class TaskSettingsViewActionsTests(TestCase):
|
||||
ChatTaskSource.objects.filter(id=self.source.id, user=self.user).exists()
|
||||
)
|
||||
|
||||
def test_source_create_updates_existing_signal_mapping_instead_of_duplicating(self):
|
||||
signal_project = TaskProject.objects.create(user=self.user, name="Signal A")
|
||||
signal_source = ChatTaskSource.objects.create(
|
||||
user=self.user,
|
||||
service="signal",
|
||||
channel_identifier="group.c0VHQTlGMEhRL2V5TGdtdkt4MjNoaGE5VnA3bURSaHBxMjMvcm9WU1piST0=",
|
||||
project=signal_project,
|
||||
settings={"match_mode": "strict"},
|
||||
enabled=True,
|
||||
)
|
||||
target_project = TaskProject.objects.create(user=self.user, name="Signal B")
|
||||
response = self.client.post(
|
||||
reverse("tasks_settings"),
|
||||
{
|
||||
"action": "source_create",
|
||||
"service": "signal",
|
||||
"channel_identifier": "group.c0VHQTlGMEhRL2V5TGdtdkt4MjNoaGE5VnA3bURSaHBxMjMvcm9WU1piST0=",
|
||||
"project_id": str(target_project.id),
|
||||
"source_match_mode": "strict",
|
||||
"source_require_prefix": "1",
|
||||
"source_derive_enabled": "1",
|
||||
"source_completion_enabled": "1",
|
||||
"source_ai_title_enabled": "1",
|
||||
},
|
||||
follow=True,
|
||||
)
|
||||
self.assertEqual(200, response.status_code)
|
||||
self.assertEqual(
|
||||
1,
|
||||
ChatTaskSource.objects.filter(
|
||||
user=self.user,
|
||||
service="signal",
|
||||
channel_identifier="group.c0VHQTlGMEhRL2V5TGdtdkt4MjNoaGE5VnA3bURSaHBxMjMvcm9WU1piST0=",
|
||||
).count(),
|
||||
)
|
||||
signal_source.refresh_from_db()
|
||||
self.assertEqual(target_project.id, signal_source.project_id)
|
||||
|
||||
|
||||
@override_settings(TASK_DERIVATION_USE_AI=False)
|
||||
class TaskAutoBootstrapTests(TestCase):
|
||||
|
||||
Reference in New Issue
Block a user