Skip to content

Commit

Permalink
Merge pull request #6 from yamila-moreno/skills
Browse files Browse the repository at this point in the history
Add skills
  • Loading branch information
jespino committed Sep 24, 2015
2 parents da4be94 + 797989a commit 0212743
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 2 deletions.
8 changes: 8 additions & 0 deletions doc/source/sampledata.rst
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,14 @@ Localized methods

Supported subtypes: development, science, management

.. py:method:: SampleData.skills(locale=None, subtype=None, total=None)
Return a list of skills, as much as total. If total=None, return all skills

Supported locales: es, us

Supported subtypes: development, science, management

Image methods
-------------

Expand Down
14 changes: 13 additions & 1 deletion sampledata/l10n/skills.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import os.path
import codecs
import six
import random


from sampledata.exceptions import ParameterError
Expand Down Expand Up @@ -36,7 +37,10 @@ def all_skills(self):
return skills

def generate(self, sd, locale=None, subtype=None):
skills = self.generate_skills(sd, locale=locale, subtype=subtype)
return sd.choice(skills)

def generate_skills(self, sd, locale=None, subtype=None, total=None):
if locale and subtype:
self.get_skills(locale)
if subtype not in Skill.data[locale]['skills']:
Expand All @@ -60,4 +64,12 @@ def generate(self, sd, locale=None, subtype=None):
else:
skills = self.all_skills()

return sd.choice(skills)
random.shuffle(skills)

if total:
if not isinstance(total, int):
raise ParameterError('Not valid total')
return skills[0:total]

return skills

2 changes: 1 addition & 1 deletion sampledata/l10n/skills/us.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"MySQL"
],
"science": [
"Asrophysics"
"Astrophysics"
],
"management": [
"Project management"
Expand Down
3 changes: 3 additions & 0 deletions sampledata/mixins/localized_mixin.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,3 +82,6 @@ def occupation(self, locale=None):

def skill(self, locale=None, subtype=None):
return Skill().generate(self, locale, subtype)

def skills(self, locale=None, subtype=None, total=None):
return Skill().generate_skills(self, locale, subtype, total)
32 changes: 32 additions & 0 deletions tests/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -540,6 +540,38 @@ def test_skill(self):
with self.assertRaises(ParameterError):
value = self.sd.skill(subtype="not-valid-locale")

def test_skills(self):
value = self.sd.skills()
self.assertTrue(isinstance(value, list))

value = self.sd.skills(locale='us', subtype='development', total=2)
self.assertTrue(isinstance(value, list))
self.assertTrue(len(value), 2)

value = self.sd.skills(locale='us')
self.assertTrue(isinstance(value, list))

value = self.sd.skills(locale='es')
self.assertTrue(isinstance(value, list))

with self.assertRaises(ParameterError):
value = self.sd.skills(locale="not-valid-locale")

value = self.sd.skills(subtype='science')
self.assertTrue(isinstance(value, list))

value = self.sd.skills(subtype='development')
self.assertTrue(isinstance(value, list))

value = self.sd.skills(subtype='management')
self.assertTrue(isinstance(value, list))

with self.assertRaises(ParameterError):
value = self.sd.skills(subtype="not-valid-locale")

with self.assertRaises(ParameterError):
value = self.sd.skills(total="not-valid-locale")

class TestImageHelpers(unittest.TestCase):
@classmethod
def setUpClass(cls):
Expand Down

0 comments on commit 0212743

Please sign in to comment.