stefan-kolb / nucleus

Platform as a Service API abstraction layer.
MIT License
28 stars 0 forks source link

Simplify and revise Testing #43

Open stefan-kolb opened 9 years ago

stefan-kolb commented 9 years ago

The current testing structure is very complex. Especially the adapter tests use so many dependencies and complex helpers (11 files). Maybe we can clean this up a bit and make it easier to understand and use for developers. We should also document it a little more if we need to keep it this way.

Additional restriction I'd like to remove if possible:

You must be allowed to create at least 3 additional applications with your account, otherwise the quota restrictions will invalidate the test results

Maybe we can also drop the 3 applications quota restriction that need to be allowed in each account to be able to run the tests.

cloudControl requires you to change the application names if the previous recording was made within the last 2 days, otherwise if fails because the name is still locked. Change the name in the spec/adapter/v1/cloud_control_spec.rb.

  • [x] We should just auto generate a random name or number for the tests. This should not be done manually.

Credential file syntax and example does not match https://github.com/croeck/paasal/blob/master/wiki/adapter_tests.md#recording

Syntax only uses user and password whereas the example below uses additional attributes usernameand id which is unclear to me.

croeck commented 9 years ago

You must be allowed to create at least 3 additional applications with your account, otherwise the quota restrictions will invalidate the test results

Maybe we can also drop the 3 applications quota restriction that need to be allowed in each account to be able to run the tests.

Situation is as follows: The tests create 2 applications (this could maybe be reduced to one application by executing the tests in a new sequential order) and a third application is attempted to be created but should fail due to a duplicate name. However, some platforms raise the Quota error instead of the obvious naming error. This is why I wrote this requirement.

cloudControl requires you to change the application names if the previous recording was made within the last 2 days, otherwise if fails because the name is still locked. Change the name in the spec/adapter/v1/cloud_control_spec.rb.

We should just auto generate a random name or number for the tests. This should not be done manually.

I fear this is not as simple as it seems. The difficulty are the recorded tests, which expect the same name as when they were recorded. So if the name is auto-generated it won't match the recordings. The obvious workaround to anonymize the application name probably causes more difficulties and complexity than it saves

Credential file syntax and example does not match https://github.com/croeck/paasal/blob/master/wiki/adapter_tests.md#recording

Syntax only uses user and password whereas the example below uses additional attributes username and id which is unclear to me.

The id is not used at all, but is included in the response objects. I thought It would be better to leave no trace to your personal account.

stefan-kolb commented 9 years ago

cloudControl naming: Ouch, yeah i forgot about that, good point. Hm...I need to dig deaper into the tests first for a good evaluation.

Credential file: I got the id thing, but what about the username field? Typo?

croeck commented 9 years ago

Credential file: I got the id thing, but what about the username field? Typo?

No, actually not. As written in the file at the very bottom, all information in this file is simply filtered out. So for instance on cloudControl you have your username (more a nickname), lets say crazypaasfrog123 and your email address as user. Even though (as with the id) only the user and password fields are used for authentication, I would not want anyone to know that my username is crazypaasfrog123. Therefore it is named to be filtered out.

Still unclear?

stefan-kolb commented 9 years ago

No, I understand. But it was just not clear in the context of the example listing, i.e. why it includes more attributes.

stefan-kolb commented 9 years ago

The included examples (the right file) are also not super easy to find.