Geen omschrijving

Joe Ceresini 2fc3e50d3f README cleanup 7 jaren geleden
bash bf66cabe29 Reorganizing 7 jaren geleden
python c9581fd03f Adding a sample systemd unit file, not the recommended way to run this though 7 jaren geleden
testfiles 660dde1db0 Adding test text files 7 jaren geleden
README.md 2fc3e50d3f README cleanup 7 jaren geleden

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
a[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}