Story points | 3 |
Tags | tdd error-checking |
Hard Prerequisites |
|
Please test your code using jasmine.
Your directory structure should look like this.
>node_modules <---- make sure this is in your .gitignore
>spec
> support
-jasmine.json
- password_is_valid_spec.js
- password_is_ok_spec.js
>src
- password_checker.js
- package.json
Your project is expected to be completed using pytest. You are expected to follow industry best practices in all things. This means that you need to have a directory structure that is in good shape. Please name your files and folders like this:
├── password_checker the package under test
│ └── password_checker.py
├── requirements.txt installation requiremnts
├── setup.py installation script for the package under test
└── tests all package tests go in this directory
├── test_password_is_valid.py
└── test_password_is_ok.py
Please take a look at this topic to see an explanation of the required directory structure. : [TODO] Umuzi Tech Department
The code you push to git should have the following structure:
├── build.gradle
├── gradle
│  └── wrapper
│  ├── gradle-wrapper.jar
│  └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
├── main
|  └── java
|  └── PasswordChecker.java <-------- names are important
└── test
└── java
└── ???.java <-------- names are important
Please refer to the following to find out more: TOPICS: [TODO] Java project submission requirements
Implement the following function by following a TDD methodology:
// Javascript:
passwordIsValid(password)
// Java:
passwordIsValid(password)
# Python:
password_is_valid(password)
password_is_valid
will check if the password meets a few different conditions. If one of the below conditions is not met then the relevant error/exception should be thrown/raised. Your error/exception message should match one of the following conditions exactly (word-for-word).
In the case of (6) above, a special character is a character that is on the keyboard but is not a number or letter. Eg { % & * " '
etc
Next, implement a function called password is ok:
// Javascript:
passwordIsOk(password)
// Java:
passwordIsOk(password)
# Python:
password_is_ok(password)
If the given password meets at least three of the conditions listed above then this function should return true, otherwise it should return false.
Add a feature: the password is never OK if conditions 1 and 2 are not met.