~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_plugins.py

  • Committer: Martin
  • Date: 2010-04-16 12:59:03 UTC
  • mto: (5177.1.1 integration2)
  • mto: This revision was merged to the branch mainline in revision 5179.
  • Revision ID: gzlist@googlemail.com-20100416125903-yjm9d5uc7l8ilxpf
Catch a couple of missed plugin module docstrings, note need for assignment to __doc__ in developer documentation and NEWS

Show diffs side-by-side

added added

removed removed

Lines of Context:
810
810
        self.overrideAttr(plugin, '_loaded', False)
811
811
        # Create the same plugin in two directories
812
812
        self.create_plugin_package('test_foo', dir='non-standard-dir')
813
 
        # The "normal" directory, we use 'standard' instead of 'plugins' to
814
 
        # avoid depending on the precise naming.
815
 
        self.create_plugin_package('test_foo', dir='standard/test_foo')
 
813
        self.create_plugin_package('test_foo', dir='b/test_foo')
816
814
 
817
 
    def assertTestFooLoadedFrom(self, path):
 
815
    def assertTestFooLoadedFrom(self, dir):
818
816
        self.assertPluginKnown('test_foo')
819
817
        self.assertDocstring('This is the doc for test_foo',
820
818
                             bzrlib.plugins.test_foo)
821
 
        self.assertEqual(path, bzrlib.plugins.test_foo.dir_source)
 
819
        self.assertEqual(dir, bzrlib.plugins.test_foo.dir_source)
822
820
 
823
821
    def test_regular_load(self):
824
 
        plugin.load_plugins(['standard'])
825
 
        self.assertTestFooLoadedFrom('standard/test_foo')
 
822
        plugin.load_plugins(['b'])
 
823
        self.assertTestFooLoadedFrom('b/test_foo')
826
824
 
827
825
    def test_import(self):
828
826
        osutils.set_or_unset_env('BZR_PLUGINS_AT', 'test_foo@non-standard-dir')
829
 
        plugin.set_plugins_path(['standard'])
 
827
        plugin.set_plugins_path(['b'])
830
828
        try:
831
829
            import bzrlib.plugins.test_foo
832
830
        except ImportError:
835
833
 
836
834
    def test_loading(self):
837
835
        osutils.set_or_unset_env('BZR_PLUGINS_AT', 'test_foo@non-standard-dir')
838
 
        plugin.load_plugins(['standard'])
 
836
        plugin.load_plugins(['b'])
839
837
        self.assertTestFooLoadedFrom('non-standard-dir')
840
838
 
841
839
    def test_compiled_loaded(self):
842
840
        osutils.set_or_unset_env('BZR_PLUGINS_AT', 'test_foo@non-standard-dir')
843
 
        plugin.load_plugins(['standard'])
 
841
        plugin.load_plugins(['b'])
844
842
        self.assertTestFooLoadedFrom('non-standard-dir')
845
843
        self.assertEqual('non-standard-dir/__init__.py',
846
844
                         bzrlib.plugins.test_foo.__file__)
848
846
        # Try importing again now that the source has been compiled
849
847
        self._unregister_plugin('test_foo')
850
848
        plugin._loaded = False
851
 
        plugin.load_plugins(['standard'])
 
849
        plugin.load_plugins(['b'])
852
850
        self.assertTestFooLoadedFrom('non-standard-dir')
853
851
        if __debug__:
854
852
            suffix = 'pyc'
861
859
        # We create an additional directory under the one for test_foo
862
860
        self.create_plugin_package('test_bar', dir='non-standard-dir/test_bar')
863
861
        osutils.set_or_unset_env('BZR_PLUGINS_AT', 'test_foo@non-standard-dir')
864
 
        plugin.set_plugins_path(['standard'])
 
862
        plugin.set_plugins_path(['b'])
865
863
        import bzrlib.plugins.test_foo
866
864
        self.assertEqual('bzrlib.plugins.test_foo',
867
865
                         bzrlib.plugins.test_foo.__package__)
868
866
        import bzrlib.plugins.test_foo.test_bar
869
867
        self.assertEqual('non-standard-dir/test_bar/__init__.py',
870
868
                         bzrlib.plugins.test_foo.test_bar.__file__)
871
 
 
872
 
    def test_loading_from___init__only(self):
873
 
        # We rename the existing __init__.py file to ensure that we don't load
874
 
        # a random file
875
 
        init = 'non-standard-dir/__init__.py'
876
 
        random = 'non-standard-dir/setup.py'
877
 
        os.rename(init, random)
878
 
        self.addCleanup(os.rename, random, init)
879
 
        osutils.set_or_unset_env('BZR_PLUGINS_AT', 'test_foo@non-standard-dir')
880
 
        plugin.load_plugins(['standard'])
881
 
        self.assertPluginUnknown('test_foo')
882
 
 
883
 
    def test_loading_from_specific_file(self):
884
 
        plugin_dir = 'non-standard-dir'
885
 
        plugin_file_name = 'iamtestfoo.py'
886
 
        plugin_path = osutils.pathjoin(plugin_dir, plugin_file_name)
887
 
        source = '''\
888
 
"""This is the doc for %s"""
889
 
dir_source = '%s'
890
 
''' % ('test_foo', plugin_path)
891
 
        self.create_plugin('test_foo', source=source,
892
 
                           dir=plugin_dir, file_name=plugin_file_name)
893
 
        osutils.set_or_unset_env('BZR_PLUGINS_AT', 'test_foo@%s' % plugin_path)
894
 
        plugin.load_plugins(['standard'])
895
 
        self.assertTestFooLoadedFrom(plugin_path)