commit d83e227af4d4daf59d31ce2a01ac3cadfc2e8f82
parent 539fc995fd701436ab3db3f385b56cb25fe082c0
Author: dwrz <dwrz@dwrz.net>
Date: Fri, 12 Nov 2021 21:16:11 +0000
Add python/two-fer
Diffstat:
6 files changed, 140 insertions(+), 0 deletions(-)
diff --git a/python/two-fer/HELP.md b/python/two-fer/HELP.md
@@ -0,0 +1,55 @@
+# Help
+
+## Running the tests
+
+To run the included *tests*, run the test file using the `pytest` module, replacing `{exercise_name}`:
+
+```bash
+$ python3 -m pytest {exercise_name}_test.py
+```
+
+Many IDE's and code editors have built-in support for using Pytest to run tests; check them out [here](https://github.com/exercism/python/blob/main/docs/TOOLS.md#editors-and-ides).
+
+For more information about running tests using `pytest`, checkout our [Python testing guide](https://github.com/exercism/python/blob/main/docs/TESTS.md#pytest).
+
+### Common pytest options
+
+- `-v` : enable verbose output.
+- `-x` : stop running tests on first failure.
+- `--ff` : run failures from previous test before running other test cases.
+
+For other options, see `python3 -m pytest -h`.
+
+## Submitting your solution
+
+You can submit your solution using the `exercism submit two_fer.py` command.
+This command will upload your solution to the Exercism website and print the solution page's URL.
+
+It's possible to submit an incomplete solution which allows you to:
+
+- See how others have completed the exercise
+- Request help from a mentor
+
+## Need to get help?
+
+If you'd like help solving the exercise, check the following pages:
+
+- The [Python track's documentation](https://exercism.org/docs/tracks/python)
+- [Exercism's support channel on gitter](https://gitter.im/exercism/support)
+- The [Frequently Asked Questions](https://exercism.org/docs/using/faqs)
+
+Should those resources not suffice, you could submit your (incomplete) solution to request mentoring.
+
+Below are some resources for getting help if you run into trouble:
+
+- [The PSF](https://www.python.org) hosts Python downloads, documentation, and community resources.
+- [Python Community on Discord](https://pythondiscord.com/) is a very helpful and active community.
+- [#python on Libera.chat](https://www.python.org/community/irc/) this is where the cored developers for the language hang out and get work done.
+- [Exercism on Gitter](https://gitter.im/exercism/home) join the Python room for Python-related questions or problems.
+- [/r/learnpython/](https://www.reddit.com/r/learnpython/) is a subreddit designed for Python learners.
+- [Python Community Forums](https://discuss.python.org/)
+- [Pythontutor](http://pythontutor.com/) for stepping through small code snippets visually.
+
+
+Additionally, [StackOverflow](http://stackoverflow.com/questions/tagged/python) is a good spot to search for your problem/question to see if it has been answered already.
+ If not - you can always [ask](https://stackoverflow.com/help/how-to-ask) or [answer](https://stackoverflow.com/help/how-to-answer) someone else's question.
+\ No newline at end of file
diff --git a/python/two-fer/README.md b/python/two-fer/README.md
@@ -0,0 +1,54 @@
+# Two Fer
+
+Welcome to Two Fer on Exercism's Python Track.
+If you need help running the tests or submitting your code, check out `HELP.md`.
+
+## Instructions
+
+`Two-fer` or `2-fer` is short for two for one. One for you and one for me.
+
+Given a name, return a string with the message:
+
+```text
+One for name, one for me.
+```
+
+Where "name" is the given name.
+
+However, if the name is missing, return the string:
+
+```text
+One for you, one for me.
+```
+
+Here are some examples:
+
+|Name |String to return
+|:-------|:------------------
+|Alice |One for Alice, one for me.
+|Bob |One for Bob, one for me.
+| |One for you, one for me.
+|Zaphod |One for Zaphod, one for me.
+
+## Source
+
+### Created by
+
+- @samwincott
+
+### Contributed to by
+
+- @cmccandless
+- @denislooby
+- @Dog
+- @Grociu
+- @ikhadykin
+- @mikeyny
+- @N-Parsons
+- @tqa236
+- @xarxziux
+- @yawpitch
+
+### Based on
+
+https://github.com/exercism/problem-specifications/issues/757
+\ No newline at end of file
diff --git a/python/two-fer/__pycache__/two_fer.cpython-39.pyc b/python/two-fer/__pycache__/two_fer.cpython-39.pyc
Binary files differ.
diff --git a/python/two-fer/__pycache__/two_fer_test.cpython-39-pytest-6.2.5.pyc b/python/two-fer/__pycache__/two_fer_test.cpython-39-pytest-6.2.5.pyc
Binary files differ.
diff --git a/python/two-fer/two_fer.py b/python/two-fer/two_fer.py
@@ -0,0 +1,7 @@
+"""This module provides a two_fer function for returning a Two Fer string."""
+
+def two_fer(name = "you"):
+ """Returns the string "One for { name }, one for me.", where the name
+ parameter is defaulted to "you".
+ """
+ return f'One for { name }, one for me.'
diff --git a/python/two-fer/two_fer_test.py b/python/two-fer/two_fer_test.py
@@ -0,0 +1,22 @@
+import unittest
+
+from two_fer import (
+ two_fer,
+)
+
+# Tests adapted from `problem-specifications//canonical-data.json`
+
+
+class TwoFerTest(unittest.TestCase):
+ def test_no_name_given(self):
+ self.assertEqual(two_fer(), "One for you, one for me.")
+
+ def test_a_name_given(self):
+ self.assertEqual(two_fer("Alice"), "One for Alice, one for me.")
+
+ def test_another_name_given(self):
+ self.assertEqual(two_fer("Bob"), "One for Bob, one for me.")
+
+
+if __name__ == "__main__":
+ unittest.main()