Read about our upcoming Code of Conduct on this issue

This instance will be upgraded to Heptapod 0.28.1 on 2022-01-26 at 16:00 UTC+1 (a few minutes of down time)

  1. 11 Jan, 2021 1 commit
  2. 06 Jun, 2020 1 commit
    • Georges Racinet's avatar
      session: avoid a webdriver leak and removed duplication · 9aeb60aea2ea
      Georges Racinet authored
      `login_as_user()` would not store the webdriver anywhere, hence
      it wouldn't be properly closed.
      It is currently used in `test_external_user_can_create_project()`
      With this change, it relies on the centralized mechanism currently
      provided by the `Heptapod` object, with the result that the
      webdriver is also stored there and gets automatically cleaned up
      at the end of the session.
  3. 05 Jun, 2020 5 commits
    • Georges Racinet's avatar
      Preparations: simplified root user info and token setup · 0c7dfea61d61
      Georges Racinet authored
      It makes more sense to set the root user once (and in the uniform
      way provided by the User class), to ensure its token immediately
      and to just assume that in the subsequent setups.
      Notably `session.login_as_root()` might simply not be called at all
      in the current test run.
    • Georges Racinet's avatar
      Preparations: made webdriver for basic user lazy · f8b865f4cc43
      Georges Racinet authored
      This already saves us 5s at each startup.
      - `session.ensure_user()` doesn't initialize a webdriver any more.
      - `Heptapod.get_user_webdriver()` creates the driver if needed
        and stores it
      - `User.ensure_private_token()` now uses `Heptapod.get_user_webdriver()`
        instead of taking a webdriver argument
    • Georges Racinet's avatar
      Session: moved user personal token generation to User class · b0029b6dec0c
      Georges Racinet authored
      A prelude to forthcoming changes to cache it.
      the `create()` class method will automatically store the user
      information in the Heptapod instance, but `search()` won't,
      because it doesn't have the password information (but its caller
    • Georges Racinet's avatar
      Session: fixed long false docstring · c3c23d133a8b
      Georges Racinet authored
    • Georges Racinet's avatar
      Preparations: timed test users management · d0cc38e2434c
      Georges Racinet authored
      These preparations (signed-in webdriver, personal access token)
      are only done once per session, but if the session is comprised of
      only a few tests, they can represent a good chunk of the run time.
      For example, launching the only current test in,
      they represent 45% of the total time (on a warmed up GDK Heptapod
      based on GitLab 12.10).
  4. 27 Apr, 2020 1 commit
    • Georges Racinet's avatar
      User and session: login_as_user · aa40b4a18f75
      Georges Racinet authored
      This new function allows to perform a webdriver login with
      a User instance. We have a bit of inconsistency here: it will
      work only for just-created Users (e.g by a fixture),
      not for those that `` can return -- unless we can
      assume the pasword is a standard one and we set it
      separately before calling `login_as_user()`.
  5. 19 Feb, 2020 1 commit
    • Georges Racinet's avatar
      Supporting running through a Selenium RemoteWebDriver · 90fc419eedf0
      Georges Racinet authored
      This is a preliminary for any CI attempt, since installing the webdriver
      inside a Docker container is a long and error prone process.
      This will allow to use a separate service image such as
      `selenium/standalone-chrome` and that may also turn to be a good option
      even outside Docker-based CI contexts.
      The new `Heptapod.new_webdriver()` method is now the unique one to be
      called to create new drivers, a preliminary to be able to run the
      tests with other drivers anyway. In particular, this should come handy
      if installing chromedriver is a problem.
  6. 24 Jan, 2020 1 commit
    • Georges Racinet's avatar
      Don't depend on default redirection of / to sign-in page · 82262e8f5bd8
      Georges Racinet authored
      On a bare, empty instance, the root URI is redirected to the sign-in page,
      but depending on this goes in the way of performing pre-flight tests on
      an already configured instance.
      There are many reasons the instance could be pre configured:
      - if configuration is automatic
      - if it already has a restored backup
  7. 01 Jan, 2020 1 commit
  8. 17 Nov, 2019 1 commit
    • Georges Racinet's avatar
      Improved initial wait for Heptapod to be ready · 0a9a5cb4d2a1
      Georges Racinet authored
      After we got an initial non-502 response, we can
      still have some while loading the full page.
      In truth, that's still not enough to start on empty volumes
      and blindly launch the tests, but we're getting closer to
      that goal.
      The next error is Mercurial pushing to Git too early. To fix
      that we'll probably have to perform or trigger a full Git push
      from the tests (we'll see).
  9. 13 Sep, 2019 1 commit
    • Georges Racinet's avatar
      flake8 · e8a54b7c3042
      Georges Racinet authored
      Keeping the warnings in test_prune, as they indicate
      actual missing use of the `log` variables, for assertions.
  10. 16 Oct, 2019 1 commit
    • Georges Racinet's avatar
      Adaptation to Gitlab 10.2 tokens management · 707665029223
      Georges Racinet authored
      Personal tokens are now in a dedicated page. The main difference
      for these automated tests is that they can't be re-read. The only
      possibility is to create a token, and read it right after creation.
      Later on, we'll consider caching them in a local file, but for
      now this is good enough to make our tests pass for Heptapod rebased
      on top of Gitlab 10.2.8
  11. 12 Aug, 2019 1 commit
  12. 16 Jul, 2019 1 commit
    • Georges Racinet's avatar
      Heptapod fixture creates a basic user who owns projects · 156d2f6215e2
      Georges Racinet authored
      With this change, a persistent unprivileged user `test_basic` is
      created, with its API token.
      The Heptapod fixture retrieves the token and starts a web session as
      this user, the project fixtures have it own their projects.
      It felt reasonible to have this generic user persist across test
      sessions, notably because user destruction is partly asynchronous in
      GitLab, because removing all objects authored by this user can be
      very long.
      We'll probably have this user own further test projects and create
      auxiliary, transient additional users to interact with the projects.
  13. 03 Jul, 2019 1 commit
    • Georges Racinet's avatar
      Generate, retrieve and store root user private token · 3074e12a0d71
      Georges Racinet authored
      This makes the `heptapod` fixture hold user password and private token
      information, something that we may want to revisit later, but that is
      simple enough for now.
      At instance creation, we generate a new private token for the root user,
      as it seems that the initially displayed value is not activated.
      Upon normal login, we retrieve the user private token, and store it in the
      `heptapod` fixture, along with its password.
      This should also enable us to stop hardcoding the root password and makes
      us close to be able to support tests running with regular users.
  14. 28 Jun, 2019 1 commit
  15. 03 Apr, 2019 1 commit
    • Raphaël Gomès's avatar
      File structure reorganization · 132ff457ae4d
      Raphaël Gomès authored
      Moving tests to a tests subpackage, and their support to `tests.utils`
      (split from orginal commit by Georges Racinet <>)
  16. 05 Oct, 2018 4 commits
  17. 04 Oct, 2018 4 commits