Skip to content

Commit

Permalink
Fix silly non-English locale bug #6
Browse files Browse the repository at this point in the history
  • Loading branch information
deanishe committed Dec 5, 2017
1 parent b653a4c commit 46ae690
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 17 deletions.
Binary file not shown.
50 changes: 38 additions & 12 deletions src/fakeum.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,15 +88,29 @@
fakers = []


def get_faker():
"""Return random faker instance."""
def all_fakers():
"""Return all fakers."""
from faker import Factory
global fakers
if not fakers:
for loc in wf.settings.get('locales', DEFAULT_SETTINGS['locales']):
fakers.append(Factory.create(loc))

return random.choice(fakers)
return fakers


def get_faker(name=None):
"""Return random faker instance."""
fakers = all_fakers()

if name is None:
return random.choice(fakers)

random.shuffle(fakers)
methname = FAKERS[name]
for faker in fakers:
if hasattr(faker, methname):
return faker


# def run_workflow():
Expand All @@ -106,16 +120,15 @@ def get_faker():

def get_fake_datum(name):
"""Return one fake datum for name."""
faker = get_faker(name)
if not faker:
return None

methname = FAKERS[name]
# Get a faker instance that has the required method
while True:
faker = get_faker()
if hasattr(faker, methname):
if name == 'Paragraph': # Pass no. of sentences to generator
datum = getattr(faker, methname)(LIPSUMS, False)
else:
datum = getattr(faker, methname)()
break
if name == 'Paragraph': # Pass no. of sentences to generator
datum = getattr(faker, methname)(LIPSUMS, False)
else:
datum = getattr(faker, methname)()

if isinstance(datum, int):
datum = str(datum)
Expand All @@ -129,13 +142,26 @@ def get_fake_datum(name):
return datum


def supported_type(name):
"""Return ``True`` if at least one Faker supports this type."""
methname = FAKERS[name]
for faker in all_fakers():
if hasattr(faker, methname):
return True

log.debug('data type "%s" is not supported by active locales', name)
return False


def get_fake_data(names=None, count=1):
"""Return list of fake data."""
fake_data = []

if not names:
names = sorted(FAKERS.keys())

names = [n for n in names if supported_type(n)]

for name in names:

data = []
Expand Down
10 changes: 5 additions & 5 deletions src/info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
<key>modifiersubtext</key>
<string></string>
<key>vitoclose</key>
<false/>
<true/>
</dict>
<dict>
<key>destinationuid</key>
Expand All @@ -124,7 +124,7 @@
<key>modifiersubtext</key>
<string></string>
<key>vitoclose</key>
<false/>
<true/>
</dict>
</array>
<key>5BB103F1-C20A-4AEC-AB23-051F4AA6816E</key>
Expand Down Expand Up @@ -176,7 +176,7 @@
<key>modifiersubtext</key>
<string></string>
<key>vitoclose</key>
<false/>
<true/>
</dict>
</array>
<key>80140127-E88D-4ED2-B69F-2A6EA08F3407</key>
Expand Down Expand Up @@ -228,7 +228,7 @@
<key>modifiersubtext</key>
<string></string>
<key>vitoclose</key>
<false/>
<true/>
</dict>
</array>
<key>BF97123F-C623-457B-B1E9-F417109255A7</key>
Expand Down Expand Up @@ -1013,7 +1013,7 @@ vars={allvars}
<string>fake</string>
</dict>
<key>version</key>
<string>2.0.1</string>
<string>2.1</string>
<key>webaddress</key>
<string></string>
</dict>
Expand Down

0 comments on commit 46ae690

Please sign in to comment.