Mercurial > pydertron
annotate test_pydertron.py @ 35:6ddc83bb61f8 default tip
added another gc test
| author | Atul Varma <avarma@mozilla.com> |
|---|---|
| date | Mon, 10 May 2010 21:01:58 -0700 |
| parents | 739c87de4667 |
| children |
| rev | line source |
|---|---|
|
31
3897ed8a350d
Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff
changeset
|
1 import unittest |
| 33 | 2 import weakref |
| 3 import gc | |
|
31
3897ed8a350d
Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff
changeset
|
4 from StringIO import StringIO |
|
3897ed8a350d
Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff
changeset
|
5 |
|
3897ed8a350d
Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff
changeset
|
6 import pydertron |
| 35 | 7 from pydertron import jsexposed |
|
31
3897ed8a350d
Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff
changeset
|
8 |
|
3897ed8a350d
Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff
changeset
|
9 class PydertronTests(unittest.TestCase): |
|
3897ed8a350d
Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff
changeset
|
10 def testNullFilesystem(self): |
|
3897ed8a350d
Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff
changeset
|
11 stderr = StringIO() |
|
3897ed8a350d
Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff
changeset
|
12 sandbox = pydertron.JsSandbox(pydertron.NullFileSystem()) |
|
3897ed8a350d
Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff
changeset
|
13 sandbox.set_globals() |
|
3897ed8a350d
Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff
changeset
|
14 sandbox.run_script("require('hi');", stderr=stderr) |
|
3897ed8a350d
Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff
changeset
|
15 self.assertEqual(stderr.getvalue(), |
|
3897ed8a350d
Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff
changeset
|
16 'Traceback (most recent call last):\n' |
|
3897ed8a350d
Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff
changeset
|
17 ' File "<string>", line 1, in <module>\n' |
|
3897ed8a350d
Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff
changeset
|
18 'Module not found: hi\n') |
|
32
e3fcfa2bf3bc
Added sandbox.finish() to end of test.
Atul Varma <avarma@mozilla.com>
parents:
31
diff
changeset
|
19 sandbox.finish() |
|
31
3897ed8a350d
Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff
changeset
|
20 |
| 33 | 21 def testGC(self): |
| 22 sandbox = pydertron.JsSandbox(pydertron.NullFileSystem()) | |
| 23 wrt = weakref.ref(sandbox.rt) | |
| 24 del sandbox | |
| 25 gc.collect() | |
| 26 self.assertEqual(wrt(), None) | |
| 27 | |
| 34 | 28 def testGC2(self): |
| 29 sandbox = pydertron.JsSandbox(pydertron.NullFileSystem()) | |
| 30 sandbox.set_globals() | |
| 31 sandbox.run_script("var a = 1;") | |
| 32 wrt = weakref.ref(sandbox.rt) | |
| 33 sandbox.finish() | |
| 34 del sandbox | |
| 35 gc.collect() | |
| 36 self.assertEqual(wrt(), None) | |
| 37 | |
| 35 | 38 def testGC3(self): |
| 39 sandbox = pydertron.JsSandbox(pydertron.NullFileSystem()) | |
| 40 | |
| 41 stuff = [] | |
| 42 | |
| 43 @jsexposed | |
| 44 def bleh(x): | |
| 45 stuff.append(x) | |
| 46 | |
| 47 sandbox.set_globals(bleh=bleh) | |
| 48 sandbox.run_script("bleh({});") | |
| 49 wrt = weakref.ref(sandbox.rt) | |
| 50 sandbox.finish() | |
| 51 stuff.pop() | |
| 52 del sandbox | |
| 53 gc.collect() | |
| 54 self.assertEqual(wrt(), None) | |
| 55 | |
|
31
3897ed8a350d
Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff
changeset
|
56 if __name__ == '__main__': |
|
3897ed8a350d
Added NullFileSystem and test for it.
Atul Varma <avarma@mozilla.com>
parents:
diff
changeset
|
57 unittest.main() |
