Exemplo n.º 1
0
        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")
Exemplo n.º 2
0
    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,
        )
Exemplo n.º 3
0
        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!")