diff options
| author | Xavier Morel <xmo@openerp.com> | 2012-03-22 15:33:31 +0100 |
|---|---|---|
| committer | Xavier Morel <xmo@openerp.com> | 2012-03-22 15:33:31 +0100 |
| commit | 7353e02e2ef4a403d4b79c1b157f2ca00b77d2fc (patch) | |
| tree | a319552e3664ea272fdfb8abf31c961bcd5e1e6e /addons/web/test/test_serving_base.py | |
| parent | 514c63288c7d5d88d764b44696c5e3a5fc148dfb (diff) | |
| parent | 1da49a44a57aa413e5eb96afe9c6d294e09848fd (diff) | |
[MERGE] from trunk
bzr revid: xmo@openerp.com-20120322143331-iajlifomw1hohbht
Diffstat (limited to 'addons/web/test/test_serving_base.py')
| -rw-r--r-- | addons/web/test/test_serving_base.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/addons/web/test/test_serving_base.py b/addons/web/test/test_serving_base.py new file mode 100644 index 00000000000..0bb7a83ac24 --- /dev/null +++ b/addons/web/test/test_serving_base.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- + +import random +import unittest2 + +from ..controllers.main import topological_sort + +def sample(population): + return random.sample( + population, + random.randint(0, min(len(population), 5))) + +class TestModulesLoading(unittest2.TestCase): + def setUp(self): + self.mods = map(str, range(1000)) + def test_topological_sort(self): + random.shuffle(self.mods) + modules = [ + (k, sample(self.mods[:i])) + for i, k in enumerate(self.mods)] + random.shuffle(modules) + ms = dict(modules) + + seen = set() + sorted_modules = topological_sort(ms) + for module in sorted_modules: + deps = ms[module] + self.assertGreaterEqual( + seen, set(deps), + 'Module %s (index %d), ' \ + 'missing dependencies %s from loaded modules %s' % ( + module, sorted_modules.index(module), deps, seen + )) + seen.add(module) |
