#NEWLINE# def test_subProjectLayout( self ) : #NEWLINE# #INDENT# '\n        The subproject tarball includes files like so:\n\n        1. twisted/<subproject>/topfiles defines the files that will be in the\n           top level in the tarball, except LICENSE, which comes from the real\n           top-level directory.\n        2. twisted/<subproject> is included, but without the topfiles entry\n           in that directory. No other twisted subpackages are included.\n        3. twisted/plugins/twisted_<subproject>.py is included, but nothing\n           else in plugins is.\n        ' #NEWLINE# structure = { #NEWLINE# #INDENT# 'README' : 'HI!@' , #NEWLINE# 'unrelated' : 'x' , #NEWLINE# 'LICENSE' : 'copyright!' , #NEWLINE# 'setup.py' : 'import toplevel' , #NEWLINE# 'bin' : { #NEWLINE# #INDENT# 'web' : { #NEWLINE# #INDENT# 'websetroot' : 'SET ROOT' , #NEWLINE# #UNINDENT# } , #NEWLINE# 'words' : { #NEWLINE# #INDENT# 'im' : '#!im' , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } , #NEWLINE# 'twisted' : { #NEWLINE# #INDENT# 'web' : { #NEWLINE# #INDENT# '__init__.py' : 'import WEB' , #NEWLINE# 'topfiles' : { #NEWLINE# #INDENT# 'setup.py' : 'import WEBINSTALL' , #NEWLINE# 'README' : 'WEB!' , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } , #NEWLINE# 'words' : { #NEWLINE# #INDENT# '__init__.py' : 'import WORDS' , #NEWLINE# #UNINDENT# } , #NEWLINE# 'plugins' : { #NEWLINE# #INDENT# 'twisted_web.py' : 'import WEBPLUG' , #NEWLINE# 'twisted_words.py' : 'import WORDPLUG' , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } #NEWLINE# outStructure = { #NEWLINE# #INDENT# 'README' : 'WEB!' , #NEWLINE# 'LICENSE' : 'copyright!' , #NEWLINE# 'setup.py' : 'import WEBINSTALL' , #NEWLINE# 'bin' : { #NEWLINE# #INDENT# 'websetroot' : 'SET ROOT' , #NEWLINE# #UNINDENT# } , #NEWLINE# 'twisted' : { #NEWLINE# #INDENT# 'web' : { #NEWLINE# #INDENT# '__init__.py' : 'import WEB' , #NEWLINE# #UNINDENT# } , #NEWLINE# 'plugins' : { #NEWLINE# #INDENT# 'twisted_web.py' : 'import WEBPLUG' , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } , #NEWLINE# #UNINDENT# } #NEWLINE# self . createStructure ( self . rootDir , structure ) #NEWLINE# outputFile = self . builder . buildSubProject ( 'web' , '0.3.0' ) #NEWLINE# self . assertExtractedStructure ( outputFile , outStructure )