summaryrefslogtreecommitdiff
path: root/test/perf/masscreate2.py
blob: 2e29a63272f97b143fc83a8e38b61c4b0185284d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import testbase
import gc

import random, string

from sqlalchemy.orm.attributes import *

# with this test, run top.  make sure the Python process doenst grow in size arbitrarily.

class User(object):
    pass
        
class Address(object):
    pass

attr_manager = AttributeManager()
attr_manager.register_attribute(User, 'id', uselist=False)
attr_manager.register_attribute(User, 'name', uselist=False)
attr_manager.register_attribute(User, 'addresses', uselist=True)
attr_manager.register_attribute(Address, 'email', uselist=False)
attr_manager.register_attribute(Address, 'user', uselist=False)
        

for i in xrange(1000):
  for j in xrange(1000):
    u = User()
    u.name = str(random.randint(0, 100000000))
    for k in xrange(10):
      a = Address()
      a.email_address = str(random.randint(0, 100000000))
      u.addresses.append(a)
      a.user = u
  print "clearing"
  #managed_attributes.clear()
  gc.collect()