No Description

Joe Ceresini a6c63ced40 Added documentation to README 7 years ago
bash bf66cabe29 Reorganizing 7 years ago
python c9581fd03f Adding a sample systemd unit file, not the recommended way to run this though 7 years ago
testfiles 660dde1db0 Adding test text files 7 years ago
README.md a6c63ced40 Added documentation to README 7 years ago

README.md

Some tests building a simple API that determines whether an input string contains every lower-case character in the latin alphabet

Bash (CGI) version

Check if POST'd string contains all lowercase letters of the latin alphabet

URL: '/contains_all_chars.sh' Method: POST Data params: Plain text Details: Removes all non-interesting characters, sorts remaining characters, removes duplicates. Checks that the length of the result matches the length of the characters we wanted.

Example response:

{ "error": null, "result": True }

Example use:

# Sample string with all alphabet characters
[jceresini@slartibartfast ~]$ curl -X POST -d 'The quick brown fox jumps over the lazy dog' http://test.ceresini.com/contains_all_chars.sh
{"error": null, "result": true}

# Sample string that doesn't contain all alphabet characters
[jceresini@slartibartfast ~]$ curl -X POST -d 'This string does not contain many letters of the alphabet' http://test.ceresini.com/contains_all_chars.sh
{"error": null, "result": false}

# Hitting API endpoint with GET method
[jceresini@slartibartfast ~]$ curl http://test.ceresini.com/contains_all_chars.sh
{"error": "Invalid http method", "result": null}

Python version using Flask

Check if POST'd string contains all lowercase letters of the latin alphabet: Method A

URL: '/contains_all_chars_a' Method: POST Data params: Plain text Details: Uses python's built-in [set].issubset function to see if the set of lowercase latin alphabet characters is a subset of the posted data

Example response:

{ "error": null, "result": True }

Example use:

[jceresini@slartibartfast]$ curl -H "Content-type: text/plain" -d "@testfiles/doi.txt" http://test.ceresini.com:5000/contains_all_chars_a
{"result": true, "error": null}

[jceresini@slartibartfast]$ curl -H "Content-type: text/plain" -d "@testfiles/doi-no-z.txt" http://test.ceresini.com:5000/contains_all_chars_a
{"result": false, "error": null}

[jceresini@slartibartfast]$ curl -H "Content-type: text/plain" -d "@testfiles/doi-allcaps.txt" http://test.ceresini.com:5000/contains_all_chars_a
{"result": false, "error": null}

Check if POST'd string contains all lowercase letters of the latin alphabet: Method B

URL: '/contains_all_chars_a' Method: POST Data params: Plain text Details: Interates over each character of the posted data to see if it contains each lowercase character in the latin alphabet. Returns as soon as it has seen each character once.

Example response:

{ "error": null, "result": True }

Example use:

[jceresini@slartibartfast]$ curl -H "Content-type: text/plain" -d "@testfiles/doi.txt" http://test.ceresini.com:5000/contains_all_chars_b
{"result": true, "error": null}

[jceresini@slartibartfast]$ curl -H "Content-type: text/plain" -d "@testfiles/doi-no-z.txt" http://test.ceresini.com:5000/contains_all_chars_b
{"result": false, "error": null}

[jceresini@slartibartfast]$ curl -H "Content-type: text/plain" -d "@testfiles/doi-allcaps.txt" http://test.ceresini.com:5000/contains_all_chars_b
{"result": false, "error": null}