Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable OCS Provisioning API tests #512

Closed
2 tasks done
dpakach opened this issue Sep 1, 2020 · 7 comments
Closed
2 tasks done

Enable OCS Provisioning API tests #512

dpakach opened this issue Sep 1, 2020 · 7 comments
Assignees

Comments

@dpakach
Copy link
Contributor

dpakach commented Sep 1, 2020

We already have tests for the OCS Provisioning API in the OC 10 test suite which we use to run the API tests in ocis. But those tests are skipped currently because we didn't use to have the OCS Provisioning API in ocis. But since we have the ocis Provisioning API available now we can enable those tests and fix them to run with ocis.

@dpakach dpakach added the qa-team label Sep 1, 2020
@phil-davis
Copy link
Contributor

Issue owncloud/ocis-reva#415 is related.

@dpakach which core scenarios are you thinking of? We run quite a lot of core scenarios in OCIS already (and many are listed in expected-failures)

@dpakach
Copy link
Contributor Author

dpakach commented Sep 1, 2020

@phil-davis, The provisioning API tests are currently tagged with @notToImplementOnOCIS. But since we have provisioning API in OCIS, we can probably run some of them now.

@phil-davis
Copy link
Contributor

OK - that will be useful so that we will know if the OCIS provisioning API endpoints have regressions (even if the OCIS Provisioning API does not get expanded to cover everything)

@jasson99 jasson99 self-assigned this Sep 1, 2020
@phil-davis phil-davis changed the title Enable OCS API tests Enable OCS Provisioning API tests Sep 1, 2020
@phil-davis
Copy link
Contributor

I adjusted the issue title to be clear that this is about OCS Provisioning API tests.
See PR owncloud/core#37866

@phil-davis
Copy link
Contributor

#514 bumps the core commit so that the Provisioning API tests get run in OCIS.
The results are in https://cloud.drone.io/owncloud/ocis/1393/4/7
Some test scenarios fail when they should be able to pass, e.g.

  Scenario: admin creates a user                                                                                                # /srv/app/testrunner/tests/acceptance/features/apiProvisioning-v1/addUser.feature:11
    Given user "brand-new-user" has been deleted                                                                                # FeatureContext::userHasBeenDeleted()
    When the administrator sends a user creation request for user "brand-new-user" password "%alt1%" using the provisioning API # FeatureContext::adminSendsUserCreationRequestUsingTheProvisioningApi()
    Then the OCS status code should be "100"                                                                                    # OCSContext::theOCSStatusCodeShouldBe()
      OCS status code is not the expected value 100 got 400
      Failed asserting that two strings are equal.
      --- Expected
      +++ Actual
      @@ @@
      -'100'
      +'400'

Provisioning.php usersHaveBeenCreated() has code if (OcisHelper::isTestingOnOcis()) then it adds "username" and "email" to the body of every user creation request. The OCIS implementation of the Provisioning API requires that these fields are always specified.

But Provisioning.php adminSendsUserCreationRequestUsingTheProvisioningApi() does not have that logic, and just sends "userid" and "password". There are also more methods like that, e.g. adminSendsUserCreationRequestWithFollowingAttributesUsingTheProvisioningApi()

  • Enhance that code so that when running on OCIS the scenarios will pass.
  • Look at other Provisioning API scenarios that are failing and see if the test code can be adjusted so that they pass.
  • Add the remaining failing scenarios to the expected-failures list.
  • If those are failing because the OCIS Provisioning API is really not working properly, then raise issues.

@jasson99 ^

@phil-davis
Copy link
Contributor

phil-davis commented Sep 2, 2020

PR owncloud/core#37874 was merged. That gets ordinary provisioning API user creation test scenarios working. There are scenarios that fail due to unusual usernames, mixed-case usernames, etc. Those look mostly to be deficiencies in the OCIS Provisioning API implementation.

  • look through the Provisioning API test failures and either
    • raise issues for the things that fail
    • enhance the core test code (if the problem is related to the test code)

These Provisioning API tests were added to expected-failures in PR #514 They are the ones to look at:

# OCS Provisioning API scenarios that fail - to be investigated and issues raised or comments added here
apiProvisioning-v1/addUser.feature:29
apiProvisioning-v1/addUser.feature:30
apiProvisioning-v1/addUser.feature:32
apiProvisioning-v1/addUser.feature:39
apiProvisioning-v1/addUser.feature:69
apiProvisioning-v1/addUser.feature:96
apiProvisioning-v1/addUser.feature:97
apiProvisioning-v1/addUser.feature:98
apiProvisioning-v1/addUser.feature:99
apiProvisioning-v1/addUser.feature:100
apiProvisioning-v1/addUser.feature:102
apiProvisioning-v1/addUser.feature:118
apiProvisioning-v1/addUser.feature:121
apiProvisioning-v1/addUser.feature:122
apiProvisioning-v1/addUser.feature:123
apiProvisioning-v1/apiProvisioningUsingAppPassword.feature:39
apiProvisioning-v1/apiProvisioningUsingAppPassword.feature:67
apiProvisioning-v1/deleteUser.feature:29
apiProvisioning-v1/deleteUser.feature:30
apiProvisioning-v1/deleteUser.feature:32
apiProvisioning-v1/deleteUser.feature:53
apiProvisioning-v1/disableUser.feature:11
apiProvisioning-v1/disableUser.feature:29
apiProvisioning-v1/disableUser.feature:30
apiProvisioning-v1/disableUser.feature:79
apiProvisioning-v1/disableUser.feature:99
apiProvisioning-v1/disableUser.feature:107
apiProvisioning-v1/disableUser.feature:129
apiProvisioning-v1/editUser.feature:29
apiProvisioning-v1/editUser.feature:30
apiProvisioning-v1/editUser.feature:47
apiProvisioning-v1/editUser.feature:56
apiProvisioning-v1/editUser.feature:122
apiProvisioning-v1/enableUser.feature:11
apiProvisioning-v1/enableUser.feature:31
apiProvisioning-v1/enableUser.feature:32
apiProvisioning-v1/enableUser.feature:34
apiProvisioning-v1/enableUser.feature:56
apiProvisioning-v1/enableUser.feature:63
apiProvisioning-v1/enableUser.feature:86
apiProvisioning-v1/getUser.feature:34
apiProvisioning-v1/getUser.feature:35
apiProvisioning-v1/getUser.feature:37
apiProvisioning-v1/getUser.feature:81
apiProvisioning-v1/getUsers.feature:11
apiProvisioning-v1/getUsers.feature:35
apiProvisioning-v1/resetUserPassword.feature:21
apiProvisioning-v1/resetUserPassword.feature:55
apiProvisioning-v2/addUser.feature:29
apiProvisioning-v2/addUser.feature:30
apiProvisioning-v2/addUser.feature:32
apiProvisioning-v2/addUser.feature:39
apiProvisioning-v2/addUser.feature:69
apiProvisioning-v2/addUser.feature:96
apiProvisioning-v2/addUser.feature:97
apiProvisioning-v2/addUser.feature:98
apiProvisioning-v2/addUser.feature:99
apiProvisioning-v2/addUser.feature:100
apiProvisioning-v2/addUser.feature:102
apiProvisioning-v2/apiProvisioningUsingAppPassword.feature:39
apiProvisioning-v2/apiProvisioningUsingAppPassword.feature:67
apiProvisioning-v2/deleteUser.feature:29
apiProvisioning-v2/deleteUser.feature:30
apiProvisioning-v2/deleteUser.feature:32
apiProvisioning-v2/deleteUser.feature:54
apiProvisioning-v2/disableUser.feature:11
apiProvisioning-v2/disableUser.feature:29
apiProvisioning-v2/disableUser.feature:30
apiProvisioning-v2/disableUser.feature:81
apiProvisioning-v2/disableUser.feature:101
apiProvisioning-v2/disableUser.feature:110
apiProvisioning-v2/disableUser.feature:133
apiProvisioning-v2/editUser.feature:29
apiProvisioning-v2/editUser.feature:30
apiProvisioning-v2/editUser.feature:47
apiProvisioning-v2/editUser.feature:56
apiProvisioning-v2/editUser.feature:122
apiProvisioning-v2/enableUser.feature:11
apiProvisioning-v2/enableUser.feature:31
apiProvisioning-v2/enableUser.feature:32
apiProvisioning-v2/enableUser.feature:34
apiProvisioning-v2/enableUser.feature:56
apiProvisioning-v2/enableUser.feature:64
apiProvisioning-v2/enableUser.feature:88
apiProvisioning-v2/getUser.feature:34
apiProvisioning-v2/getUser.feature:35
apiProvisioning-v2/getUser.feature:37
apiProvisioning-v2/getUser.feature:47
apiProvisioning-v2/getUser.feature:82
apiProvisioning-v2/getUsers.feature:11
apiProvisioning-v2/getUsers.feature:36
apiProvisioning-v2/resetUserPassword.feature:21
apiProvisioning-v2/resetUserPassword.feature:55

@phil-davis
Copy link
Contributor

The failing tests are listed in expected failures now, so we can follow those up separately.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants