Skip to content

Commit 9865872

Browse files
authored
Merge pull request #9 from crd/develop
Prepare for 0.2.0 Release
2 parents ecbc574 + 3ebc84e commit 9865872

File tree

8 files changed

+141
-51
lines changed

8 files changed

+141
-51
lines changed

.codacy.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
engines:
3+
pylint:
4+
enabled: true
5+
python_version: 3
6+
7+
duplication:
8+
enabled: true
9+
10+
metrics:
11+
enabled: true
12+
13+
coverage:
14+
enabled: true
15+
16+
languages:
17+
python:
18+
19+
exclude_paths:
20+
- tests/*
21+
- setup.py

.coveragerc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
[run]
22
source = .
3-
omit = setup.py,tests/*,faker_credit_score/__version__.py
3+
omit = setup.py,tests/*,faker_credit_score/__version__.py,.venv/*

.travis.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ env:
88
# command to install dependencies
99
install: make setup
1010
# # command to run tests
11-
script: make test
11+
script: make test
12+
after_success: make coverage

Makefile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,12 @@ setup:
1111
pipenv install --dev --three
1212

1313
activate:
14-
pipenv shell -c
14+
pipenv shell
1515

1616
test:
17-
pipenv run python -m unittest tests/test_faker_credit_score.py
17+
pipenv run coverage run -m unittest tests/*
18+
19+
coverage:
20+
pipenv run coveralls
1821

1922
.PHONY: help activate test

Pipfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ name = "pypi"
88
[dev-packages]
99
coverage = "*"
1010
faker = "*"
11+
python-coveralls = "*"
1112

1213
[requires]
1314
python_version = "3.6"

Pipfile.lock

Lines changed: 78 additions & 33 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

faker_credit_score/__init__.py

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
11
# coding=utf-8
22
from __future__ import unicode_literals
3-
from collections import namedtuple, OrderedDict
3+
from collections import OrderedDict
44

55
from faker.providers import BaseProvider
66

77

88
class CreditScoreObject(object):
9-
def __init__(self, name="FICO SCORE 8", provider="FICO", score_range=[300, 850]):
9+
""" Credit Score Object that uses fico8 as a sensible default. """
10+
def __init__(
11+
self,
12+
name="FICO Score 8",
13+
providers=("Equifax", "Experian", "TransUnion"),
14+
score_range=(300, 850),
15+
):
1016
self.name = name
11-
self.provider = provider
17+
self.providers = providers
1218
self.score_range = score_range
1319

1420

15-
class CreditScore(BaseProvider):
21+
class Provider(BaseProvider):
1622

1723
# FICO 8 Score is the most widely-used non-industry specific credit score model,
1824
# followed by 5, 2, and 4 as per https://www.myfico.com/credit-education/credit-scores/fico-score-versions
@@ -22,17 +28,28 @@ class CreditScore(BaseProvider):
2228
# * https://blog.myfico.com/whats-a-good-credit-score-range/
2329
# * https://www.wrightrealtors.com/home/credit-score.htm
2430

25-
fico8_range = [300, 850]
26-
fico5_range = [334, 818]
27-
fico2_range = [320, 844]
28-
fico4_range = [309, 839]
31+
fico8_name = "FICO Score 8"
32+
fico8_providers = ("Equifax", "Experian", "TransUnion")
33+
fico8_range = (300, 850)
34+
35+
fico5_name = "Equifax Beacon 5.0"
36+
fico5_providers = ("Equifax",)
37+
fico5_range = (334, 818)
38+
39+
fico2_name = "Experian/Fair Isaac Risk Model V2SM"
40+
fico2_providers = ("Experian",)
41+
fico2_range = (320, 844)
42+
43+
fico4_name = "TransUnion FICO Risk Score, Classic 04"
44+
fico4_providers = ("TransUnion",)
45+
fico4_range = (309, 839)
2946

3047
credit_score_types = OrderedDict(
3148
(
32-
("fico8", CreditScoreObject("FICO Score 8", "FICO", fico8_range)),
33-
("fico5", CreditScoreObject("Equifax Beacon 5.0", "Equifax", fico5_range)),
34-
("fico2", CreditScoreObject("Experian/Fair Isaac Risk Model V2SM", "Experian", fico2_range)),
35-
("fico4", CreditScoreObject("TransUnion FICO Risk Score, Classic 04", "TransUnion", fico4_range)),
49+
("fico8", CreditScoreObject(fico8_name, fico8_providers, fico8_range)),
50+
("fico5", CreditScoreObject(fico5_name, fico5_providers, fico5_range)),
51+
("fico2", CreditScoreObject(fico2_name, fico2_providers, fico2_range)),
52+
("fico4", CreditScoreObject(fico4_name, fico4_providers, fico4_range)),
3653
)
3754
)
3855
credit_score_types["fico"] = credit_score_types["fico8"]
@@ -47,7 +64,7 @@ def credit_score_provider(self, score_type=None):
4764
""" Returns the name of the credit score provider. """
4865
if score_type is None:
4966
score_type = self.random_element(self.credit_score_types.keys())
50-
return self._credit_score_type(score_type).provider
67+
return self.random_element(self._credit_score_type(score_type).providers)
5168

5269
def credit_score(self, score_type=None):
5370
""" Returns a valid credit score. """
@@ -78,3 +95,5 @@ def _credit_score_type(self, score_type=None):
7895
def _generate_credit_score(self, credit_score_range):
7996
""" Returns an integer within the range specified by credit_score_range. """
8097
return self.generator.random_int(*credit_score_range)
98+
99+
CreditScore = Provider

faker_credit_score/__version__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
"""Package version."""
2-
VERSION = (0, 1, 1)
2+
VERSION = (0, 2, 0)
33

44
__version__ = '.'.join(map(str, VERSION))

0 commit comments

Comments
 (0)