Advertisement
Guest User

Untitled

a guest
May 19th, 2018
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.92 KB | None | 0 0
  1. import os
  2. os.environ.setdefault('DJANGO_SETTINGS_MODULE',
  3.                       'Web_service.settings')
  4.  
  5. import django
  6. django.setup()
  7.  
  8. from rast.models import Job, User, UserProfile
  9.  
  10.  
  11. def populate():
  12.     """Generate some Jobs and UserProfiles."""
  13.  
  14.     users = {
  15.         'ivan2': {
  16.             'username': 'ivan2',
  17.             'e-mail': 'my@gmail.com',
  18.             'password': 'RopTop63'
  19.         },
  20.         'zhenya': {
  21.             'username': 'Z',
  22.             'e-mail': 'z@gmail.com',
  23.             'password': '123polkA'
  24.         },
  25.         'kostya': {
  26.             'username': 'Kostya',
  27.             'e-mail': 'kos_tya',
  28.             'password': 'frog903J'
  29.         },
  30.         'snow': {
  31.             'username': 'Snow',
  32.             'e-mail': 'snow@l.ru',
  33.             'password': 'snowBoard3'
  34.         },
  35.         'no_name': {
  36.             'username': '',
  37.             'e-mail': 'no@gmail.com',
  38.             'password': 'Noname4'
  39.         },
  40.         'no_email': {
  41.             'username': 'hi',
  42.             'e-mail': '',
  43.             'password': 'Noemail123'
  44.         },
  45.         'no_password': {
  46.             'username': 'hello',
  47.             'e-mail': 'nopass@yandex.by',
  48.             'password': ''
  49.         }
  50.     }
  51.  
  52.     user_profiles = [
  53.         {'user': users['ivan2'],
  54.          'picture': '',
  55.          'website': ''},
  56.         {'user': users['kostya'],
  57.          'picture': 'profile_images/Снимок_экрана.png',
  58.          'website': 'http://www.kos.by'},
  59.         {'user': users['zhenya'],
  60.          'picture': '',
  61.          'website': 'http://www.z.by'},
  62.         {'user': users['snow'],
  63.          'picture': 'profile_images/Снимок_экрана.png',
  64.          'website': 'http://www.snow.com'},
  65.         {'user': users['no_name'],
  66.          'picture': 'profile_images/Снимок_экрана.png',
  67.          'website': 'www..by'},
  68.         {'user': users['no_email'],
  69.          'picture': 'error',
  70.          'website': ''},
  71.         {'user': users['no_password'],
  72.          'picture': '',
  73.          'website': 'error'},
  74.     ]
  75.  
  76.     jobs = [
  77.         {'id': 1,
  78.          'name': 'My job',
  79.          'sra_id': 'SRR2018',
  80.          'data_file': '',
  81.          'result_file': '',
  82.          'user': ''},
  83.         {'id': 2,
  84.          'name': 'S',
  85.          'sra_id': '',
  86.          'data_file': 'data_vcf/SRR5152945_filter.recode.vcf',
  87.          'result_file': '',
  88.          'user': ''},
  89.         {'id': 3,
  90.          'name': 'S',
  91.          'sra_id': '',
  92.          'data_file': 'data_vcf/SRR5152945_filter.recode.vcf',
  93.          'result_file': '',
  94.          'user': users['ivan2']},
  95.         {'id': 4,
  96.          'name': '',
  97.          'sra_id': 'SRR10000',
  98.          'data_file': 'data_vcf/SRR5152945_filter.recode.vcf',
  99.          'result_file': '',
  100.          'user': users['zhenya']},
  101.         {'id': 5,
  102.          'name': '',
  103.          'sra_id': '',
  104.          'data_file': 'data_vcf/SRR5152945_filter.recode.vcf',
  105.          'result_file': '',
  106.          'user': users['no_password']},
  107.         {'id': 6,
  108.          'name': '',
  109.          'sra_id': 'SRR300',
  110.          'data_file': '',
  111.          'result_file': '',
  112.          'user': users['kostya']},
  113.         {'id': 7,
  114.          'name': '',
  115.          'sra_id': '',
  116.          'data_file': 'data_vcf/SRR5152945_filter.recode.vcf',
  117.          'result_file': 'result_data/job_report12.csv',
  118.          'user': users['snow']},
  119.         {'id': 8,
  120.          'name': 'S',
  121.          'sra_id': '',
  122.          'data_file': 'data_vcf/SRR5152945_filter.recode.vcf',
  123.          'result_file': 'result_data/job_report11.csv',
  124.          'user': users['no_name']},
  125.  
  126.     ]
  127.  
  128.     for user in users.values():
  129.         add_user(user['username'], user['e-mail'], user['password'])
  130.  
  131.     for up in user_profiles:
  132.         add_userprofile(up['user'], up['picture'], up['website'])
  133.  
  134.     for job in jobs:
  135.         add_job(job['id'], job['name'], job['sra_id'],
  136.                 job['data_file'], job['result_file'], job['user'])
  137.  
  138.     print('Jobs:\n')
  139.     for j in Job.objects.all():
  140.         print(str(j))
  141.  
  142.     print('\nUser_profiles:\n')
  143.     for u in User.objects.all():
  144.         print(str(u))
  145.  
  146.  
  147. def add_user(username, email, password):
  148.     u = User.objects.get_or_create(username=username)[0]
  149.     u.email = email
  150.     u.set_password(password)
  151.     u.save()
  152.  
  153.  
  154. def add_userprofile(user, picture, website):
  155.     u = User.objects.get(username=user['username'])
  156.     up = UserProfile.objects.get_or_create(user=u)[0]
  157.     up.picture = picture
  158.     up.website = website
  159.     up.save()
  160.  
  161.  
  162. def add_job(id, name, sra_id, data_file, result_file, user):
  163.     j = Job.objects.get_or_create(id=id, name=name, sra_id=sra_id,
  164.                                   data_file=data_file, result_file=result_file)[0]
  165.     u = None
  166.     try:
  167.         u = User.objects.get(username=user['username'])
  168.     except TypeError:
  169.         pass
  170.     j.user = u
  171.     j.save()
  172.  
  173.  
  174. if __name__ == '__main__':
  175.     print('Starting Rast population script...')
  176.     populate()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement