import python_nondynamic

aa = python_nondynamic.A()

aa.a = 1
aa.b = 2
try:
  aa.c = 2
  err = 0
except:
  err = 1

if not err:  
  raise RuntimeError, "A is not static"  

class B(python_nondynamic.A):
  c = 4
  def __init__(self):
    python_nondynamic.A.__init__(self)
    pass
  pass

bb = B()

try:
  bb.c = 3
  err = 0
except:
  err = 1

if not err:
  print "bb.c = %d" % bb.c
  print "B.c = %d" % B.c
  raise RuntimeError, "B.c class variable messes up nondynamic-ness of B"

try:
  bb.d = 2
  err = 0
except:
  err = 1

if not err:  
  raise RuntimeError, "B is not static"  
      
cc = python_nondynamic.C()
cc.d = 3
