Merge branch 'geoffturk/mock-data' into 'master'
Add better mocked data See merge request grassrootseconomics/cic-internal-integration!172
This commit is contained in:
commit
d0f2bc0120
@ -2,21 +2,18 @@
|
|||||||
|
|
||||||
# standard imports
|
# standard imports
|
||||||
import json
|
import json
|
||||||
import time
|
|
||||||
import datetime
|
import datetime
|
||||||
import random
|
import random
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import base64
|
|
||||||
import hashlib
|
import hashlib
|
||||||
import sys
|
|
||||||
import argparse
|
import argparse
|
||||||
import random
|
import random
|
||||||
|
|
||||||
# external imports
|
# external imports
|
||||||
import vobject
|
|
||||||
import celery
|
import celery
|
||||||
from faker import Faker
|
from faker import Faker
|
||||||
|
from collections import OrderedDict
|
||||||
import confini
|
import confini
|
||||||
from cic_types.models.person import (
|
from cic_types.models.person import (
|
||||||
Person,
|
Person,
|
||||||
@ -37,12 +34,16 @@ config_dir = os.environ.get('CONFINI_DIR', os.path.join(script_dir, 'config'))
|
|||||||
|
|
||||||
argparser = argparse.ArgumentParser()
|
argparser = argparse.ArgumentParser()
|
||||||
argparser.add_argument('-c', type=str, default=config_dir, help='Config dir')
|
argparser.add_argument('-c', type=str, default=config_dir, help='Config dir')
|
||||||
argparser.add_argument('--tag', type=str, action='append', help='Tags to add to record')
|
argparser.add_argument('--tag', type=str, action='append',
|
||||||
argparser.add_argument('--gift-threshold', type=int, help='If set, users will be funded with additional random balance (in token integer units)')
|
help='Tags to add to record')
|
||||||
|
argparser.add_argument('--gift-threshold', type=int,
|
||||||
|
help='If set, users will be funded with additional random balance (in token integer units)')
|
||||||
argparser.add_argument('-v', action='store_true', help='Be verbose')
|
argparser.add_argument('-v', action='store_true', help='Be verbose')
|
||||||
argparser.add_argument('-vv', action='store_true', help='Be more verbose')
|
argparser.add_argument('-vv', action='store_true', help='Be more verbose')
|
||||||
argparser.add_argument('--dir', default='out', type=str, help='path to users export dir tree')
|
argparser.add_argument('--dir', default='out', type=str,
|
||||||
argparser.add_argument('user_count', type=int, help='amount of users to generate')
|
help='path to users export dir tree')
|
||||||
|
argparser.add_argument('user_count', type=int,
|
||||||
|
help='amount of users to generate')
|
||||||
args = argparser.parse_args()
|
args = argparser.parse_args()
|
||||||
|
|
||||||
if args.v:
|
if args.v:
|
||||||
@ -60,7 +61,8 @@ dt_then = dt_now - datetime.timedelta(weeks=150)
|
|||||||
ts_now = int(dt_now.timestamp())
|
ts_now = int(dt_now.timestamp())
|
||||||
ts_then = int(dt_then.timestamp())
|
ts_then = int(dt_then.timestamp())
|
||||||
|
|
||||||
celery_app = celery.Celery(broker=config.get('CELERY_BROKER_URL'), backend=config.get('CELERY_RESULT_URL'))
|
celery_app = celery.Celery(broker=config.get(
|
||||||
|
'CELERY_BROKER_URL'), backend=config.get('CELERY_RESULT_URL'))
|
||||||
|
|
||||||
gift_max = args.gift_threshold or 0
|
gift_max = args.gift_threshold or 0
|
||||||
gift_factor = (10**6)
|
gift_factor = (10**6)
|
||||||
@ -88,6 +90,7 @@ if tags == None or len(tags) == 0:
|
|||||||
|
|
||||||
random.seed()
|
random.seed()
|
||||||
|
|
||||||
|
|
||||||
def genPhoneIndex(phone):
|
def genPhoneIndex(phone):
|
||||||
h = hashlib.new('sha256')
|
h = hashlib.new('sha256')
|
||||||
h.update(phone.encode('utf-8'))
|
h.update(phone.encode('utf-8'))
|
||||||
@ -147,10 +150,10 @@ def genDob():
|
|||||||
|
|
||||||
def gen():
|
def gen():
|
||||||
old_blockchain_address = '0x' + os.urandom(20).hex()
|
old_blockchain_address = '0x' + os.urandom(20).hex()
|
||||||
old_blockchain_checksum_address = to_checksum_address(old_blockchain_address)
|
old_blockchain_checksum_address = to_checksum_address(
|
||||||
|
old_blockchain_address)
|
||||||
gender = random.choice(['female', 'male', 'other'])
|
gender = random.choice(['female', 'male', 'other'])
|
||||||
phone = genPhone()
|
phone = genPhone()
|
||||||
city = fake.city_name()
|
|
||||||
v = genPersonal(phone)
|
v = genPersonal(phone)
|
||||||
|
|
||||||
contact_data = get_contact_data_from_vcard(v)
|
contact_data = get_contact_data_from_vcard(v)
|
||||||
@ -167,11 +170,43 @@ def gen():
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
p.location['area_name'] = city
|
p.products = [fake.random_element(elements=OrderedDict(
|
||||||
|
[('fruit', 0.25),
|
||||||
|
('maji', 0.05),
|
||||||
|
('milk', 0.1),
|
||||||
|
('teacher', 0.1),
|
||||||
|
('doctor', 0.05),
|
||||||
|
('boutique', 0.15),
|
||||||
|
('recycling', 0.05),
|
||||||
|
('farmer', 0.05),
|
||||||
|
('oil', 0.05),
|
||||||
|
('pastor', 0.1),
|
||||||
|
('chama', 0.03),
|
||||||
|
('pastor', 0.01),
|
||||||
|
('bzrTsuZieaq', 0.01)
|
||||||
|
]))]
|
||||||
|
p.location['area_name'] = fake.random_element(elements=OrderedDict(
|
||||||
|
[('mnarani', 0.05),
|
||||||
|
('chilumani', 0.1),
|
||||||
|
('madewani', 0.1),
|
||||||
|
('kisauni', 0.05),
|
||||||
|
('bangla', 0.1),
|
||||||
|
('kabiro', 0.1),
|
||||||
|
('manyani', 0.05),
|
||||||
|
('ruben', 0.15),
|
||||||
|
('makupa', 0.05),
|
||||||
|
('kingston', 0.05),
|
||||||
|
('rangala', 0.05),
|
||||||
|
('homabay', 0.1),
|
||||||
|
('nakuru', 0.03),
|
||||||
|
('kajiado', 0.01),
|
||||||
|
('zurtWicKtily', 0.01)
|
||||||
|
]))
|
||||||
if random.randint(0, 1):
|
if random.randint(0, 1):
|
||||||
p.location['latitude'] = (random.random() + 180) - 90 #fake.local_latitude()
|
# fake.local_latitude()
|
||||||
p.location['longitude'] = (random.random() + 360) - 180 #fake.local_latitude()
|
p.location['latitude'] = (random.random() + 180) - 90
|
||||||
|
# fake.local_latitude()
|
||||||
|
p.location['longitude'] = (random.random() + 360) - 180
|
||||||
|
|
||||||
return (old_blockchain_checksum_address, phone, p)
|
return (old_blockchain_checksum_address, phone, p)
|
||||||
|
|
||||||
@ -239,7 +274,8 @@ if __name__ == '__main__':
|
|||||||
ft.write('{}:{}\n'.format(eth, ','.join(tags)))
|
ft.write('{}:{}\n'.format(eth, ','.join(tags)))
|
||||||
amount = genAmount()
|
amount = genAmount()
|
||||||
fa.write('{},{}\n'.format(eth, amount))
|
fa.write('{},{}\n'.format(eth, amount))
|
||||||
logg.debug('pidx {}, uid {}, eth {}, amount {}, phone {}'.format(pidx, uid, eth, amount, phone))
|
logg.debug('pidx {}, uid {}, eth {}, amount {}, phone {}'.format(
|
||||||
|
pidx, uid, eth, amount, phone))
|
||||||
|
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user