Skip to content
Snippets Groups Projects
  1. Feb 03, 2025
  2. Jan 20, 2025
    • Emil Laurentowicz's avatar
      serializers: add runconfigs to serialize_bug's return value · c2105577
      Emil Laurentowicz authored
      Add a new "runconfigs" field to the serialized response returned from
      the serialize_bug function. It's a list containing the values of all run
      configurations in which the given bug has been observed.
      
      Example use case in replication scripts - adding "First seen in:
      [runconfig name]" to the description of a bug in a bug tracker.
      c2105577
  3. Dec 18, 2024
    • Piotr Kira's avatar
      MetricPassRatePerRunconfig: fix grouping per status · a108b0ee
      Piotr Kira authored
      Using only `name` property of `TextStatus` object to group chart data
      can results in invalid charts because `name` value does not have to be
      unique. To fix that we have to use `str` method of `TextStatus` which
      provides unique string based on combination of testsuite + text status
      name which is guaranteed to be unique.
      a108b0ee
  4. Dec 16, 2024
  5. Dec 04, 2024
  6. Nov 25, 2024
    • Piotr Kira's avatar
      run_import: fix cover statics · 50ca718d
      Piotr Kira authored
      Failure rate and other statistics based on `RunFilterStatistic` are not
      calculated correctly because `RunFilterStatistic` is only created for
      test_results which are failures (is_failure returns true). To fix that
      we have to itterate over all the results and check coverage of filters.
      Unfortunatelly this may result in worsening of the import duration.
      
      Example:
      
      In case of filter -> 'status_name = "abort"' statistic will be created
      for:
      
        * test result matching filters (status_name = "abort")
        * test results not matching filters but which are failures
          (status_name = "fail", "timeout" etc.)
      
      Statistic won't be created for test result with status name "pass".
      50ca718d
  7. Nov 18, 2024
    • Piotr Kira's avatar
      filtering: refactor visitors · 828c5fbd
      Piotr Kira authored
      Refactor visitors to reduce code duplication and potential
      discrepancies.
      828c5fbd
    • Piotr Kira's avatar
      models/IssueFilter: refactor matching/cover logic · d13f8537
      Piotr Kira authored
      I've refacotred matching and cover logic to use QueryParserPython. It
      simplifies code.
      d13f8537
    • Piotr Kira's avatar
      filtering: add QueryParserPython · 7f58416f
      Piotr Kira authored
      Add QueryParserPython which parses 'user_query' into Python function
      that checks if given Django model instance matches provided
      'user_query'. Basically it means we can execute 'user_queries' locally
      in Python itself.
      
      This functionality can improve performance of importing results in some
      cases. For example in case of importing low number of failures.
      7f58416f
    • Piotr Kira's avatar
      filtering/QueryParser: refactor many-to-many query logic · dab47ccb
      Piotr Kira authored
      Current QueryParser logic is not intuitive when quering many-to-many
      fields multiple times. In case of quering one many-to-many fields all of
      the condition checks are applied for every single value.
      
      For example let's say we have one machine in database with tags 'A' and
      'B'.
      
      This query would return that machine:
      
      `machine_tag = 'A' OR machine_tag = 'B'`
      
      These queries wouldn't:
      
      `machine_tag = 'A' AND machine_tag 'B'`
      `machine_tag = 'A' AND machine_tag ICONTAINS 'b'`
      dab47ccb
    • Piotr Kira's avatar
      test_filtering/QueryParserTests: refactor · 5ae7e7ed
      Piotr Kira authored
      Refactor QueryparserTests to use real Django models.
      5ae7e7ed
    • Piotr Kira's avatar
      filtering/QueryVisitor: split query visitor logic · 5104d3a7
      Piotr Kira authored
      I've extracted base of QueryVisitor logic to QueryVistorBase class so I
      can reuse it next patch where I plan to create QueryParser which would
      build and return matching function.
      5104d3a7
  8. Oct 29, 2024
    • Emil Laurentowicz's avatar
      Fix filtering on paginated tables · 0998a30e
      Emil Laurentowicz authored
      Currently, all paginated tables are bugged. When one tries to change
      the page, filters are cleared and vice versa. It was due to the fact
      that both these features were overriding GET URL parameters.
      This change fixes that.
      
      Querystring template tag (introduced in Django 5.1) was used instead of
      concatenating parameters by hand to simplify the process.
      0998a30e
  9. Oct 28, 2024
    • Emil Laurentowicz's avatar
      views: add SafePaginator class derived from Paginator · 08a821bd
      Emil Laurentowicz authored
      In Django, when someone tries to access a page number in a paginator
      that is higher than the total number of pages available, it usually
      results in a 404 error. The SafePaginator class changes this behavior.
      Instead of throwing an error, it automatically retrieves and displays
      the last available page.
      
      This can be particularly useful in situations where, for example, a user
      is viewing the last page of a table and then applies a filter that
      reduces the number of pages. Normally, this would cause a 404 error
      because the page they were on no longer exists. With SafePaginator,
      the user would simply be shown the last available page instead of
      encountering an error.
      
      The only method that SafePaginator overrides is validate_number, which
      is responsible for checking if the requested page number is valid.
      08a821bd
  10. Oct 23, 2024
    • Piotr Kira's avatar
      rest_views: add endpoints for UnknownFailure · a1e007d4
      Piotr Kira authored
      Let's add rest API endpoints for UnknownFailure, this will allow to
      dynamically fetch UnknownFailures on frontend if we need this in future
      + enable third party integrations (like data analyzing).
      a1e007d4
  11. Oct 21, 2024
  12. Oct 16, 2024
    • Piotr Kira's avatar
      filtering: fix regexpes · a4a08f09
      Piotr Kira authored
      Python and Postgresql regular expression engines differ, one of the
      difference is that "." symbol matches every character in Postgresql,
      even new lines, but in python it matches everything but new line
      character. More info: https://docs.python.org/3/howto/regex.html
      
      CIBugLog executes filters both in Python and Postgresql and in case of
      using "." in rare cases we get different results. Let's use Postgresql,
      more standard way (POSIX) of interpreting dot character.
      a4a08f09
    • Piotr Kira's avatar
      templates/issue: handle server error for stats · 6e1cd74f
      Piotr Kira authored
      Server error for stats is not handled properly, and in case of such
      error no info is displayed in web ui for user + loading spinner is still
      spinning.
      6e1cd74f
    • Piotr Kira's avatar
      templates/issue: extract logic of setting stats info · 9bfe572a
      Piotr Kira authored
      I've extracted logic of setting stats info and spinner to make code more
      simple.
      9bfe572a
  13. Oct 15, 2024
  14. Aug 26, 2024
  15. Aug 14, 2024
  16. Jul 31, 2024
  17. Jul 25, 2024
  18. Jul 24, 2024
  19. Jul 23, 2024
    • Piotr Kira's avatar
      templates/index: add ID column to UnknownFailures table · 5330894d
      Piotr Kira authored
      I've decided to add ID column to UnknownFailures table to make it easier
      to identify given failure. This will help with cooperation of bug
      fillers, now when they want to talk about specific unknown failure with
      each other they have to send screen-shot of the table row because there
      is no way to share unique identifier.
      5330894d
  20. Jun 19, 2024
  21. Jun 13, 2024
Loading