Skip to content
Snippets Groups Projects
  1. Nov 11, 2021
  2. Nov 03, 2021
  3. Oct 25, 2021
    • Georges Racinet's avatar
      Closed branches: don't break if no new changeset in transaction · cf9852a71d45
      Georges Racinet authored
      The `%d` in the revset used to analyse new changesets produces
      a hard error if the revno does not exist, instead of an empty
      result.
      
      We could later on try and introduce a logic similar to MR detection,
      but the topic is not always visible to GitLab anyway, for instance
      if the closing changeset is the only one, so that would require
      more changes.
      
      Meanwhile, we have a solution for one of the cases of heptapod#452
      cf9852a71d45
  4. Nov 03, 2021
    • Georges Racinet's avatar
      Error handling: ensure tracebacks are produced in GitLab mirror hook · db8189107a65
      Georges Racinet authored
      (adapted graft of 4728e33a7d5c)
      
      Here we consider straight Abort errors to be user errors, hence not
      warranting a server-side traceback in the logs. On the other hand, all
      other uncatched errors will be logged at error level.
      
      This makes use of `hg-loggingmod` 0.3.0 ability to log tracebacks in
      the logs.
      
      This can certainly be improved further, as it doesn't prevent
      server-side tracebacks to be displayed to SSH clients, for instance.
      db8189107a65
  5. Oct 28, 2021
    • Georges Racinet's avatar
      Tests: force pytest<6 to workaround problem with error.Hint · 09870b83b236
      Georges Racinet authored
      This solves this problem in tests of testhelpers:
      
              # actual error is FilteredRepoLookupError up to 5.9 and will
              # be InputError in 6.0 (current default head of Mercurial, does not
              # bear the version yet)
      >       with pytest.raises(error.Hint) as exc_info:
      E       TypeError: expected exception must be a BaseException type, not Hint
      heptapod/testhelpers/tests/test_repo_wrapper.py:54: TypeError
      
      The queston would be whether it'd be reasonable to make `error.Hint`
      subclass `Exception` (or `BaseException`).
      
      Also pytest<6 works for me, but that doesn't mean pytest 6.0.0 was the
      one to start demanding exceptions to be subclass `BaseException`.
      09870b83b236
  6. Oct 25, 2021
  7. Oct 17, 2021
  8. Oct 12, 2021
  9. Oct 17, 2021
    • Georges Racinet's avatar
      test_integration: preparations to derive as tests without Git · 66f073f6c089
      Georges Racinet authored
      These should be only spelling and type changes, meant so that
      the diff with the future tests of a native state maintainer without
      a Git repository are easier to compare with these.
      
      This explains some weird line breaks, such as:
      
      ```
          wrapper.commit_file(
              'foo', message='some msg')
      ```
      
      because it will become in the tests for the future class something
      like
      
      ```
          ctx = wrapper.commit_file(
      ```
      
      with the second line unchanged.
      
      We also take the opportunity to modernize the calls to the
      deprecated `write_commit()`.
      66f073f6c089
    • Georges Racinet's avatar
      test_integration: fixed and factorized test_topic_rebase_publish() · 4c4b53691f8b
      Georges Racinet authored
      Because of a missing `parent` keyword in `write_commit()`, the
      rebase was actually trivial.
      
      The factorization with `test_topic_add_rebase_publish()` will
      make it easier to adapt for the future state maintainer with no
      Git repo.
      4c4b53691f8b
    • Georges Racinet's avatar
      prune_reasons.BranchClosed: keep tuples in native back-conversion · 7f4f24facb55
      Georges Racinet authored
      The back conversion was converting the 2-tuple to a list of
      length 2.
      
      This didn't change anything in the end serialization (`json`
      converts tuples and lists alike anyway), but it was a small pain
      for the writing of uniform test cases for future native state
      maintainers without any back-conversion.
      7f4f24facb55
    • Georges Racinet's avatar
      testhelpers.gitlab: new assert_default_gitlab_branch() method · c5b6b9f8cf69
      Georges Racinet authored
      This makes `git.test_integration` more readable and will be used
      identically in tests for the future state maintainer with no Git
      repository.
      c5b6b9f8cf69
  10. Oct 11, 2021
    • Georges Racinet's avatar
      Ensuring GitLab state files: do not create Git repository · bdf767406a0d
      Georges Racinet authored
      In the fully native mode, without any conversion to Git, it will
      still be potentially useful to be able to read a leftover Git repo
      if the GitLab project was marked as fully native without the
      expected call to the various `ensure_*` methods.
      
      But we don't want any Git repo to be created, and that is a
      side effect of using `self.git.refs`.
      
      In Heptapod functional tests, we will add assertions on absence
      of Git repo to be 100% sure that they pass without any unwarranted
      help (one could imagine first an empty repo, then a push would
      trigger the mirror and suddenly one is not testing the fully native
      mode as expected).
      
      It would be tempting to init the default GitLab branch directly
      as `branch/default`, but that would be the implicit false promise
      that there is a commit on the `default` branch, and our logic
      to correct the initial default Gitlab branch name is probably not
      able to cope with that. So better keep the default Git value.
      bdf767406a0d
    • Georges Racinet's avatar
      Test fixtures: extracted a GitLabStateMaintainerFixture base class · ebfb0b7b148b
      Georges Racinet authored
      It will be useful to test the future `NativeStateMaintainer` class
      ebfb0b7b148b
    • Georges Racinet's avatar
      testhelpers: testing the GitRepo helper class · 2eb152fab02a
      Georges Racinet authored
      Some methods of this class will soon not be used by py-heptapod's integration
      tests. Since they can be useful downstream in HGitaly, we need to keep them
      and cover them directly.
      2eb152fab02a
  11. Oct 13, 2021
  12. Oct 11, 2021
  13. Aug 03, 2021
  14. Jul 05, 2021
Loading