Skip to content

Commit

Permalink
bug fix and new version release
Browse files Browse the repository at this point in the history
  • Loading branch information
punkyoon committed Apr 10, 2017
1 parent 157f1c3 commit 70f4827
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 14 deletions.
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ python:
- 3.6

install:
- python setup.py install
- pip install pokinator

script:
- python ./pokinator/tests.py
- python -c 'from pokinator import tests; tests.run_test();'

13 changes: 6 additions & 7 deletions pokinator/pokinator.py
Original file line number Diff line number Diff line change
@@ -1,28 +1,27 @@
from random import choice, randint
from .pokemons import firstgen
#from .pokemons import firstgen


class Pokinator:
_name1 = firstgen._name1
_name2 = firstgen._name2

@classmethod
def generate(self, token_range=9999, delimiter='-', digit=None):
if not isinstance(token_range, int) or token_range < 0:
raise RuntimeError('Token range must be a nonnegative integer')
if not isinstance(delimiter, str):
raise RuntimeError('Delimiter must be a string')

generated = [choice(self._name1), choice(self._name2)]
if digit != None:

if digit is not None:
if not isinstance(digit, int) or (digit < 1) or (digit < len(str(token_range))):
raise RuntimeError('Digit must be more than 0')
format_str = '%0.' + str(digit) + 'd'
result = format_str % randint(0, token_range)
else:
result = randint(0, token_range)
generated.append(str(result))

return delimiter.join(generated)

return delimiter.join(generated)
12 changes: 7 additions & 5 deletions pokinator/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,31 +3,33 @@

from pokinator import Pokinator


class NameGenTest(unittest.TestCase):
def test_generate(self):
self.assertTrue(re.match(r'\w+-\w+-\d+', Pokinator.generate()))

def test_not_equal_in_repeated_call(self):
self.assertNotEqual(Pokinator.generate(), Pokinator.generate())

def test_configurable_range(self):
self.assertTrue(re.match(r'\w+-\w+-\d$', Pokinator.generate(9)))

def test_wrong_range(self):
with self.assertRaises(RuntimeError):
Pokinator.generate('1')
with self.assertRaises(RuntimeError):
Pokinator.generate(-1)

def test_wrong_delimiter(self):
with self.assertRaises(RuntimeError):
Pokinator.generate(delimiter=1)

def test_wrong_digit(self):
with self.assertRaises(RuntimeError):
Pokinator.generate(digit=3)
Pokinator.generate(token_range=999, digit=4)


def run_test():
print('#1 value test : ' + Pokinator.generate())
print('#2 value test : ' + Pokinator.generate(9))
Expand Down

0 comments on commit 70f4827

Please sign in to comment.