Skip to content

Commit

Permalink
Add Person record. Update setup.py.
Browse files Browse the repository at this point in the history
  • Loading branch information
KirovVerst committed Jul 31, 2017
1 parent 2e32cee commit 9b6adcf
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 13 deletions.
15 changes: 10 additions & 5 deletions examples/qrecords.py
@@ -1,13 +1,18 @@
import datetime
from qgeneration.qfields import DateQField, FirstNameQField
from qgeneration.qrecords import QRecord
from qgeneration.qrecords import QRecord, PersonQRecord

if __name__ == '__main__':
date_field = DateQField('date_field',
start=datetime.date(year=1990, month=1, day=1),
finish=datetime.date(year=2000, month=1, day=1))
start = datetime.date(year=1900, month=1, day=1)
finish = datetime.date(year=2000, month=1, day=1)
date_field = DateQField('date_field', start, finish)

first_name = FirstNameQField('first_name')
record = QRecord(name='record', fields=[first_name, date_field])
record = QRecord(record_name='record', fields=[first_name, date_field])

for _ in range(10):
print(record.generate())

person = PersonQRecord('my_person')

print(person.generate())
22 changes: 19 additions & 3 deletions qgeneration/qrecords.py
@@ -1,9 +1,25 @@
import datetime
from qgeneration.qfields import FirstNameQField, LastNameQField, DateQField


class QRecord:
def __init__(self, name, fields):
self.name = name
def __init__(self, record_name, fields):
self.record_name = record_name
self.fields = fields
self.id = 0

def generate(self):
self.id += 1
return [field.generate() for field in self.fields]
return [self.id] + [field.generate() for field in self.fields]


class PersonQRecord(QRecord):
def __init__(self, record_name, start_date=None, finish_date=None):
if start_date is None:
start_date = datetime.date(year=1990, month=1, day=1)
if finish_date is None:
finish_date = datetime.date(year=2000, month=1, day=1)
fields = [FirstNameQField('first_name'),
LastNameQField('last_name'),
DateQField('birthday', start_date, finish_date)]
super(PersonQRecord, self).__init__(record_name, fields)
2 changes: 1 addition & 1 deletion setup.py
Expand Up @@ -9,7 +9,7 @@

setup(
name='qgeneration',
version='0.1a2',
version='0.1a3',
description='Data generation project',
long_description=long_description,
url='https://github.com/KirovVerst/qgeneration',
Expand Down
14 changes: 10 additions & 4 deletions tests/test_qrecords.py
Expand Up @@ -11,10 +11,16 @@ def test_qrecord(self):
date_field = qfields.DateQField('date_field', start=start, finish=finish)

first_name = qfields.FirstNameQField('first_name')
record = qrecords.QRecord(name='record', fields=[first_name, date_field])
record = qrecords.QRecord(record_name='record', fields=[first_name, date_field])

record_value = record.generate()

self.assertIn(record_value[0], qfields.DATASET[qfields.FIRST_NAME_FIELD_TYPE])
self.assertGreaterEqual(record_value[1], start)
self.assertLessEqual(record_value[1], finish)
self.assertIn(record_value[1], qfields.DATASET[qfields.FIRST_NAME_FIELD_TYPE])
self.assertGreaterEqual(record_value[2], start)
self.assertLessEqual(record_value[2], finish)

def test_person_record(self):
person = qrecords.PersonQRecord('my_person')
data = person.generate()
self.assertEqual(len(data), 4)
self.assertEquals(data[0], 1)

0 comments on commit 9b6adcf

Please sign in to comment.