diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 index 4c0aab0..625c2da --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,5 @@ venv .DS_STORE htmlcov .coverage -__pycache__ \ No newline at end of file +__pycache__ +/.idea \ No newline at end of file diff --git a/part1/reverse-string/reverse_afr/reverse.py b/part1/reverse-string/reverse_afr/reverse.py new file mode 100644 index 0000000..b9f4e44 --- /dev/null +++ b/part1/reverse-string/reverse_afr/reverse.py @@ -0,0 +1,3 @@ +def reverse(s): + # return s[-1:-len(s)-1:-1] -- my first attempt which seems complicated + return s[::-1] # After researching on it. diff --git a/part1/reverse-string/reverse_afr/test_reverse.py b/part1/reverse-string/reverse_afr/test_reverse.py new file mode 100644 index 0000000..8176b2e --- /dev/null +++ b/part1/reverse-string/reverse_afr/test_reverse.py @@ -0,0 +1,22 @@ +from reverse import reverse + +# Test reversal in positive case +def test_reverse_1(): + strings = [("", ""), + ("hello", "olleh"), + ] + for s in strings: + (string, reverse_string) = s + assert reverse_string == reverse(string) + +# Test reversal in negative case +def test_reverse_2(): + strings = [("", "olleh"), + ("hello", "") + ] + for s in strings: + (string, reverse_string) = s + assert reverse_string != reverse(string) + +test_reverse_1() +test_reverse_2() diff --git a/part1/reverse-string/reverse_akinkunmi/reverse.py b/part1/reverse-string/reverse_akinkunmi/reverse.py new file mode 100644 index 0000000..589e533 --- /dev/null +++ b/part1/reverse-string/reverse_akinkunmi/reverse.py @@ -0,0 +1,2 @@ +def reverse(str_to_reverse): + return str_to_reverse[::-1] diff --git a/part1/reverse-string/reverse_akinkunmi/reverse_test.py b/part1/reverse-string/reverse_akinkunmi/reverse_test.py new file mode 100644 index 0000000..34e5875 --- /dev/null +++ b/part1/reverse-string/reverse_akinkunmi/reverse_test.py @@ -0,0 +1,14 @@ +from reverse import reverse +import unittest + + +class TestReverse(unittest.TestCase): + + def test_reverse(self): + self.assertEqual(reverse('hello'), 'olleh') + self.assertEqual(reverse('newyork'), 'kroywen') + self.assertNotEqual(reverse('newyork'), 'newyork') + + +if __name__ == '__main__': + unittest.main() diff --git a/part1/reverse-string/reverse_ni8mr/reverse.py b/part1/reverse-string/reverse_ni8mr/reverse.py deleted file mode 100644 index db509c9..0000000 --- a/part1/reverse-string/reverse_ni8mr/reverse.py +++ /dev/null @@ -1,6 +0,0 @@ -import re - -my_string = raw_input("Enter your string: ") -a = re.split('; |, |\*|\n', my_string) - -for i in \ No newline at end of file diff --git a/part1/reverse-string/reverse_reisch/reverse_string.py b/part1/reverse-string/reverse_reisch/reverse_string.py new file mode 100755 index 0000000..9378885 --- /dev/null +++ b/part1/reverse-string/reverse_reisch/reverse_string.py @@ -0,0 +1,2 @@ +def reverse(some_string): + return some_string[::-1] diff --git a/part1/reverse-string/reverse_reisch/test_reverse.py b/part1/reverse-string/reverse_reisch/test_reverse.py new file mode 100755 index 0000000..4303ab2 --- /dev/null +++ b/part1/reverse-string/reverse_reisch/test_reverse.py @@ -0,0 +1,14 @@ +import unittest +from reverse_string import reverse + + +class ReverseStringTests(unittest.TestCase): + def test_reverse(self): + my_string = "testing" + my_reversed_string = "gnitset" + + returned_string = reverse(my_string) + assert my_reversed_string == returned_string + +if __name__ == "__main__": + unittest.main() diff --git a/part1/reverse-string/reverse_reza/test_reverse.py b/part1/reverse-string/reverse_reza/test_reverse.py index 6c40ec4..a46403a 100644 --- a/part1/reverse-string/reverse_reza/test_reverse.py +++ b/part1/reverse-string/reverse_reza/test_reverse.py @@ -2,7 +2,6 @@ import unittest - class ReverseTestCase(unittest.TestCase): def test(self): test_string = "Hello, My name is Reza. Github user name:ni8mr" @@ -10,5 +9,5 @@ def test(self): result_string = reverse(test_string) self.assertEqual(altered_string, result_string) -if __name__=='__main__': +if __name__ == '__main__': unittest.main() diff --git a/part1/vowel-counter/counter_afr/test_vowel_counter.py b/part1/vowel-counter/counter_afr/test_vowel_counter.py new file mode 100644 index 0000000..9a6efa8 --- /dev/null +++ b/part1/vowel-counter/counter_afr/test_vowel_counter.py @@ -0,0 +1,27 @@ +from vowel_counter import vowel_counter + +def test_vowel_counter_1(): + string = "" + vowels = vowel_counter(string) + expected_vowels={ + "a":0, + "e":0, + "i":0, + "o":0, + "u":0 + } + assert vowels == expected_vowels + + string = "abcaaadefoogooo" + vowels = vowel_counter(string) + expected_vowels={ + "a":4, + "e":1, + "i":0, + "o":5, + "u":0 + } + assert vowels == expected_vowels + + +test_vowel_counter_1() diff --git a/part1/vowel-counter/counter_afr/vowel_counter.py b/part1/vowel-counter/counter_afr/vowel_counter.py new file mode 100644 index 0000000..8f3bfa7 --- /dev/null +++ b/part1/vowel-counter/counter_afr/vowel_counter.py @@ -0,0 +1,15 @@ +# return a dictionary +def vowel_counter(string): + vowels={ + "a":0, + "e":0, + "i":0, + "o":0, + "u":0 + } + + for c in string: + if c in vowels.keys(): + vowels[c] = vowels[c]+1 + return vowels + diff --git a/part1/vowel-counter/counter_akinkunmi/vowel_counter.py b/part1/vowel-counter/counter_akinkunmi/vowel_counter.py new file mode 100644 index 0000000..8f18bb4 --- /dev/null +++ b/part1/vowel-counter/counter_akinkunmi/vowel_counter.py @@ -0,0 +1,12 @@ +def vowel_counter(str): + vowel_freqs = {} + vowel_list = ['a', 'e', 'i', 'o', 'u'] + lower_case_string = str.lower() + for v in vowel_list: + f = lower_case_string.find(v) + if f != -1: + if v in vowel_freqs: + vowel_freqs[v] += 1 + else: + vowel_freqs[v] = 1 + return vowel_freqs diff --git a/part1/vowel-counter/counter_akinkunmi/vowel_counter_test.py b/part1/vowel-counter/counter_akinkunmi/vowel_counter_test.py new file mode 100644 index 0000000..0a2b48b --- /dev/null +++ b/part1/vowel-counter/counter_akinkunmi/vowel_counter_test.py @@ -0,0 +1,13 @@ +from vowel_counter import vowel_counter +import unittest + + +class VowelCounterTestCase(unittest.TestCase): + def test(self): + test_string = "Akinkunmi" + expected_vowel_count = {'a': 1, 'i': 1, 'u': 1} + resulted_vowel_count = vowel_counter(test_string) + self.assertEqual(expected_vowel_count, resulted_vowel_count) + +if __name__ == '__main__': + unittest.main() diff --git a/part1/vowel-counter/counter_reisch/test_vowel_counter.py b/part1/vowel-counter/counter_reisch/test_vowel_counter.py new file mode 100755 index 0000000..c3a622c --- /dev/null +++ b/part1/vowel-counter/counter_reisch/test_vowel_counter.py @@ -0,0 +1,12 @@ +import unittest +from vowel_counter import vowel_counter + + +class VowelCounterTests(unittest.TestCase): + def test_vowel_counter(self): + my_string = 'abracadabra' + vowel_count = vowel_counter(my_string) + assert vowel_count == 5 + +if __name__ == '__main__': + unittest.main() diff --git a/part1/vowel-counter/counter_reisch/vowel_counter.py b/part1/vowel-counter/counter_reisch/vowel_counter.py new file mode 100755 index 0000000..b2b5f4e --- /dev/null +++ b/part1/vowel-counter/counter_reisch/vowel_counter.py @@ -0,0 +1,9 @@ +vowels = ('a', 'e', 'i', 'o', 'u') + + +def vowel_counter(some_string): + count = 0 + for letter in some_string: + if letter in vowels: + count += 1 + return count diff --git a/part1/vowel-counter/counter_reza/test_vowel_counter.py b/part1/vowel-counter/counter_reza/test_vowel_counter.py index 763a47e..1c3ccd9 100644 --- a/part1/vowel-counter/counter_reza/test_vowel_counter.py +++ b/part1/vowel-counter/counter_reza/test_vowel_counter.py @@ -1,6 +1,7 @@ from vowel_counter import vowel_counter import unittest + class VowelCounterTestCase(unittest.TestCase): def test(self): test_string = "Hello, My name is Reza. Github user name:ni8mr" @@ -8,5 +9,5 @@ def test(self): resulted_vowel_count = vowel_counter(test_string) self.assertEqual(expected_vowel_count, resulted_vowel_count) -if __name__=='__main__': +if __name__ == '__main__': unittest.main() diff --git a/part1/vowel-counter/counter_reza/vowel_counter.py b/part1/vowel-counter/counter_reza/vowel_counter.py index 2cd8e7e..c8436cd 100644 --- a/part1/vowel-counter/counter_reza/vowel_counter.py +++ b/part1/vowel-counter/counter_reza/vowel_counter.py @@ -1,7 +1,6 @@ def vowel_counter(string): count = 0 for letter in string: - if letter in ['A','E','I','O','U','a','e','i','o','u']: + if letter in ['A', 'E', 'I', 'O', 'U', 'a', 'e', 'i', 'o', 'u']: count = count + 1 return count - diff --git a/part2/README.md b/part2/README.md old mode 100644 new mode 100755 index b4884b2..a8972fd --- a/part2/README.md +++ b/part2/README.md @@ -7,5 +7,7 @@ | [MPerham](https://github.com/mperham2/python-devtest/tree/master/part2/reverse_flask_perham) | [Heroku](https://shrouded-thicket-5935.herokuapp.com/) | | [Gary Herd](https://github.com/garyherd/python-devtest) | [reverse-string](https://grh-reverse-string.herokuapp.com/) | | [Noor Faziur Reza](https://github.com/ni8mr/python-devtest) | [reverse_string_reza](http://ni8mr2.herokuapp.com/) | -| Add link here | Add link here | +| [AAkinkunmi](https://github.com/nubianMONK/python-devtest/tree/master/part2/reverse_flask_akinkunmi) | [reverse-flask](http://vast-forest-9436.herokuapp.com/) | +| [Matthew Reisch](https://github.com/mbreisch/python-devtest) | [reverse-flask](https://vast-caverns-90155.herokuapp.com/) | +| [Available For Recruit](https://github.com/available-for-recruit/python-devtest) | [reverse-flask](https://limitless-beach-97367.herokuapp.com/) | | Add link here | Add link here | diff --git a/part2/reverse_flask_afr/Procfile b/part2/reverse_flask_afr/Procfile new file mode 100644 index 0000000..0d9c468 --- /dev/null +++ b/part2/reverse_flask_afr/Procfile @@ -0,0 +1 @@ +web: python app.py diff --git a/part2/reverse_flask_afr/app.py b/part2/reverse_flask_afr/app.py new file mode 100644 index 0000000..1630263 --- /dev/null +++ b/part2/reverse_flask_afr/app.py @@ -0,0 +1,31 @@ +# Reverse a string +# Note - this doesn't persist anything in a db + +import os + +# import specific reverse function +from reverse import reverse + +from flask import Flask, flash, redirect, render_template, request, url_for + +SECRET_KEY = "jiosf0m()(HJI890w23r9j*&*^&GY" +WTF_CSRF_ENABLED = True # cross-site request forgery protection + +app = Flask(__name__) +app.config.from_object(__name__) + +# Main index route +@app.route("/") +def index(): + return render_template("index.html") + +# Route to reversed entry +@app.route("/reverse_entry", methods = ["POST"]) +def reverse_entry(): + re = reverse(request.form["string_to_reverse"]) + return render_template("reverse_entry.html", re = re) + +# Main - port added to work with heroku +if __name__ == "__main__": + port = int(os.environ.get("PORT", 5000)) + app.run(host="0.0.0.0", port = port) diff --git a/part2/reverse_flask_afr/requirements.txt b/part2/reverse_flask_afr/requirements.txt new file mode 100644 index 0000000..7385e3f --- /dev/null +++ b/part2/reverse_flask_afr/requirements.txt @@ -0,0 +1,15 @@ +behave==1.2.5 +Flask==0.10.1 +Flask-Bootstrap==3.3.4.1 +Flask-Session==0.2 +Flask-WTF==0.11 +gunicorn==19.3.0 +itsdangerous==0.24 +Jinja2==2.7.3 +MarkupSafe==0.23 +parse==1.6.6 +parse-type==0.3.4 +six==1.10.0 +Werkzeug==0.10.4 +wheel==0.26.0 +WTForms==2.0.2 diff --git a/part2/reverse_flask_afr/reverse.py b/part2/reverse_flask_afr/reverse.py new file mode 100644 index 0000000..b9f4e44 --- /dev/null +++ b/part2/reverse_flask_afr/reverse.py @@ -0,0 +1,3 @@ +def reverse(s): + # return s[-1:-len(s)-1:-1] -- my first attempt which seems complicated + return s[::-1] # After researching on it. diff --git a/part2/reverse_flask_afr/templates/base.html b/part2/reverse_flask_afr/templates/base.html new file mode 100644 index 0000000..93aa1b0 --- /dev/null +++ b/part2/reverse_flask_afr/templates/base.html @@ -0,0 +1,20 @@ + + +
+Result: {{ reversed_string }}
+