Skip to content
Snippets Groups Projects
  1. Mar 15, 2022
    • Georges Racinet's avatar
      Wrapper script to run smoke tests on Clever prod servers · 41921454
      Georges Racinet authored
      Simple shell wrapper scripts have been sitting on my computers for a
      long time, here is a version for both instances, with the credentials
      singled out as environment variables or user input.
      
      This is to be run with the working copy updated to the relevant branch
      (`default`, `stable` or `oldstable`) for the target platform. Reasons:
      
      - the functional tests have to be adapted upon minor GitLab version
        changes (not systematic, yet frequent enough)
      - we might have different options to provide in the wrapper script itself
        depending on Heptapod specifics (native mode would be a prime example of
        that).
      
      Note: at the time of deployment of Heptapod 0.30.0 on both platforms, the
      stable branch is outdated, and the default branch is for Heptapod 0.30.
      
      I've hesitated a bit between one single script for foss.h.n and
      heptapod.host or two scripts, because there have been times in the
      past when there were more differences than the login sequence. With
      a Python script, we can manage such differences in the future anyway.
      
      The reason to bite the bullet and make a full Python script is the
      usual one: as long as there is at least an argument, chances that
      someone would call it with `--help` are high.
      
      A full pipeline would be a waste of resources with this, the only
      relevant part being only flake8 for the new script.
      [skip ci]
      41921454
  2. Mar 14, 2022
  3. Mar 13, 2022
  4. Mar 12, 2022
    • Georges Racinet's avatar
      Project.webdriver_fork: waiting for namespace to be visible · cbe959eb
      Georges Racinet authored
      Because the rendering of the namespaces selector is now made in
      JavaScript, it has become asynchronous and we have to wait for it.
      cbe959eb
    • Georges Racinet's avatar
      GitLab 14.8: taking changes in API caching into account. · 22c0fa23
      Georges Racinet authored
      In GitLab 14.8, the cache for the whole API branches call is no
      longer behind a feature flag, and is not configurable. This is
      mitigated by the Heptapod specific `api_cache_expiration_factor`,
      brought in the same stack of changes as the move to GitLab 14.8
      
      Also, there is a new feature flag `api_caching_branch`, which
      seems to apply for commit heads if the whole response is not
      generated from cache. We set it to `false`, but expect that
      our expiration factor will also effectively disable it when the
      feature is not optional any more.
      22c0fa23
  5. Mar 13, 2022
  6. Mar 12, 2022
  7. Mar 11, 2022
    • Georges Racinet's avatar
      Teardown: remove now harmful cleanup · 78678db4
      Georges Racinet authored
      At the time it was introduced, project deletion didn't work well
      in Heptapod: it was removing the Git repository only, and before
      the appropriate behaviour was stabilized, it happened that the hg
      part would fail.
      Also, we didn't have project name randomization, so that a lingering
      repo would break all subsequent tests. Finally, Project deletion
      in GitLab was then synchronous.
      
      Nowadays, this is not the case
      any more, we don't need to insist that much on deletion, quite the
      contrary: this deletion occurs before the worker responsible for
      actual deletion spins up, and this results in massive exception log
      littering.
      
      Closes #22
      78678db4
  8. Feb 21, 2022
    • Georges Racinet's avatar
      Mercurial native migration: test MR update time display · 1311228d
      Georges Racinet authored
      We take the webdriver road, because just checking the value of
      `updated_at` through the API would be pretty much a weaker version
      of RSpec tests. Another way to put it is that this would fail if
      `updated_at` wasn't backing the display.
      
      There are actually two timestamps (`created_at` is there as well)
      1311228d
  9. Feb 20, 2022
  10. Feb 26, 2022
  11. Feb 16, 2022
  12. Feb 17, 2022
  13. Feb 12, 2022
    • Georges Racinet's avatar
      test_import: webdriver test · 602b7dfa
      Georges Racinet authored
      The point of this test is to reproduce heptapod#524, and
      further test that actual Mercurial remote validation works.
      
      A first version of this, without the waiting times
      introduced in `webdriver_import_url` did not reproduce the
      issue, and this was masking very real problems. This one does
      the job.
      
      Also, in order to avoid duplicating the test based on the
      REST API, we change `Project.api_import_url` to take a `User`
      instance intead of a user name. This goes in the same direction
      as the various refactorings introduced in these tests in the
      past year or so.
      602b7dfa
    • Georges Racinet's avatar
      Project.webdriver_import_url: trigger JavaScript validations · 1607562e
      Georges Racinet authored
      The validation occurs only when the URL field loses focus
      (blur event), hence the TAB we send.
      
      Additionally, we must wait enough so that the validation round
      trip to the Rails app (iself calling the remote) can succeed, or
      fail. If we submit the form faster than any human could, we
      actually skip the validation. Same goes with the VCS Type field:
      changing it is supposed to trigger (re)validation. If we don't wait,
      we don't really test that.
      1607562e
  14. Feb 10, 2022
    • Georges Racinet's avatar
      Project.webdriver_import_url: new classmethod · 4386569a
      Georges Racinet authored
      This will be the workhorse for webdriver-based import tests.
      
      For this, we hacked a few controls and entry points in the
      existing `webdriver_new_project_submit()`, until it worked.
      Later refactoring to make it more natural is an option.
      
      Validation is done in Git tests, as we know that the Mercurial
      import is currently broken (heptapod#595).
      
      The passing Git test will be an interesting non-regression test
      in any case.
      4386569a
    • Georges Racinet's avatar
      Project.wait_assert_import: extracted method · 3f8837c0
      Georges Racinet authored
      We will need it also for webdriver-based import tests.
      3f8837c0
  15. Feb 15, 2022
  16. Feb 14, 2022
  17. Feb 16, 2022
  18. Feb 14, 2022
  19. Feb 13, 2022
Loading