def test_log_limit_works(self): plugin_server_instance_id = str(UUIDT()) some_plugin: Plugin = Plugin.objects.create( organization=self.organization) some_plugin_config: PluginConfig = PluginConfig.objects.create( plugin=some_plugin, order=1) plugin_log_entry_factory( team_id=self.team.pk, plugin_id=some_plugin.pk, plugin_config_id=some_plugin_config.pk, source=PluginLogEntry.Source.CONSOLE, type=PluginLogEntry.Type.INFO, message="Something happened!", instance_id=plugin_server_instance_id, ) plugin_log_entry_factory( team_id=self.team.pk, plugin_id=some_plugin.pk, plugin_config_id=some_plugin_config.pk, source=PluginLogEntry.Source.CONSOLE, type=PluginLogEntry.Type.ERROR, message="Random error", instance_id=plugin_server_instance_id, ) results = fetch_plugin_log_entries( plugin_config_id=some_plugin_config.pk, limit=1) self.assertEqual(len(results), 1) self.assertEqual(results[0].message, "Random error")
def get_queryset(self): limit_raw = self.request.GET.get("limit") limit: Optional[int] if limit_raw: try: limit = int(limit_raw) except ValueError: raise exceptions.ValidationError( "Query param limit must be omitted or an integer!") else: limit = None after_raw: Optional[str] = self.request.GET.get("after") after: Optional[timezone.datetime] = None if after_raw is not None: after = timezone.datetime.fromisoformat( after_raw.replace("Z", "+00:00")) before_raw: Optional[str] = self.request.GET.get("before") before: Optional[timezone.datetime] = None if before_raw is not None: before = timezone.datetime.fromisoformat( before_raw.replace("Z", "+00:00")) parents_query_dict = self.get_parents_query_dict() return fetch_plugin_log_entries( team_id=parents_query_dict["team_id"], plugin_config_id=parents_query_dict["plugin_config_id"], after=after, before=before, search=self.request.GET.get("search"), limit=limit, )
def test_simple_log_is_fetched(self): plugin_server_instance_id = str(UUIDT()) some_plugin: Plugin = Plugin.objects.create( organization=self.organization) some_plugin_config: PluginConfig = PluginConfig.objects.create( plugin=some_plugin, order=1) plugin_log_entry_factory( team_id=self.team.pk, plugin_id=some_plugin.pk, plugin_config_id=some_plugin_config.pk, source=PluginLogEntry.Source.CONSOLE, type=PluginLogEntry.Type.INFO, message="Something happened!", instance_id=plugin_server_instance_id, ) results = fetch_plugin_log_entries( plugin_config_id=some_plugin_config.pk, after=timezone.datetime.min, before=timezone.now() + timezone.timedelta(seconds=5), ) self.assertEqual(len(results), 1) self.assertEqual(results[0].message, "Something happened!")