Skip to content

Commit

Permalink
Adds a number of class desugaring tests
Browse files Browse the repository at this point in the history
  • Loading branch information
joshkunz committed Apr 1, 2015
1 parent a85a6cb commit dd53496
Show file tree
Hide file tree
Showing 7 changed files with 75 additions and 0 deletions.
12 changes: 12 additions & 0 deletions proj3/tests/class-bases.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
class A:
def methodA(self): return "A"

class B:
def methodB(self): return "B"

class C(A, B):
def methods(self):
return (self.methodA(), self.methodB())

c = C()
print(c.methods())
3 changes: 3 additions & 0 deletions proj3/tests/class-basic.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
class A:
a = 10
print(A.a)
8 changes: 8 additions & 0 deletions proj3/tests/class-decorated.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
def decorator(func):
return lambda: "decorated!"

@decorator
class A:
foo = 10

print(A())
14 changes: 14 additions & 0 deletions proj3/tests/class-metaclass.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
def fix(d): return list(sorted(d.items()))

def test_meta(name, bases, dict, **kwargs):
return name, bases, fix(kwargs)


nargs = (5, 4, 3, 2, 1)
dargs = {"a": 10, "b": 20, "c": 30}
class Bang:
class Foo(10, 11, *nargs, metaclass=test_meta, other_arg="hello", **dargs):
pass

print(Bang.Foo)

16 changes: 16 additions & 0 deletions proj3/tests/class-methods.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
class Foo:
a = 10
def test(self):
a = 54
return a
def metaclass(self):
return "metaclass!"
def __dict__(self):
return "__dict__!"

print(Foo.a)
f = Foo()
print(f.test())
print(f.test())
print(f.metaclass())
print(f.__dict__())
9 changes: 9 additions & 0 deletions proj3/tests/class-nested-basic.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
class A:
a = "first"
class B:
b = "second"
class C:
c = "third"
print(A.a)
print(A.B.b)
print(A.B.C.c)
13 changes: 13 additions & 0 deletions proj3/tests/class-nested-decorated.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
class A:
def decorator(fun):
return lambda: "decorated!"

@decorator
class B:
class C:
c = 10

something = "something"

print(A.something)
print(A.B())

0 comments on commit dd53496

Please sign in to comment.