def test_exclusions(self): # setup exclude_str = '--exclude "2.6.30-rc2"' excluded_result = dict(self._result) del excluded_result['v2.6/testing/patch-2.6.30-rc2.bz2'] # record (source.utils.system_output.expect_call( self._cmd_template % (exclude_str, self._prefix, self._path1)).and_return( self._output1)) (source.utils.system_output.expect_call( self._cmd_template % (exclude_str, self._prefix, self._path2)).and_return( self._output_excluded)) self.db_mock.get_dictionary.expect_call().and_return(self._known_files) # playback s = source.rsync_source(self.db_mock, self._prefix, excludes=('2.6.30-rc2', )) s.add_path('v2.6/patch-2.6.*.bz2', 'v2.6') s.add_path('v2.6/testing/patch*.bz2', 'v2.6/testing') self.assertEquals(s.get_new_files(), excluded_result) self.god.check_playback()
def test_simple(self): # record (source.utils.system_output.expect_call( self._cmd_template % ('', self._prefix, self._path1)) .and_return(self._output1)) (source.utils.system_output.expect_call( self._cmd_template % ('', self._prefix, self._path2)) .and_return(self._output2)) self.db_mock.get_dictionary.expect_call().and_return(self._known_files) # playback s = source.rsync_source(self.db_mock, self._prefix) s.add_path('v2.6/patch-2.6.*.bz2', 'v2.6') s.add_path('v2.6/testing/patch*.bz2', 'v2.6/testing') self.assertEquals(s.get_new_files(), self._result) self.god.check_playback()
def test_exclusions(self): # setup exclude_str = '--exclude "2.6.30-rc2"' excluded_result = dict(self._result) del excluded_result['v2.6/testing/patch-2.6.30-rc2.bz2'] # record (source.utils.system_output.expect_call( self._cmd_template % (exclude_str, self._prefix, self._path1)) .and_return(self._output1)) (source.utils.system_output.expect_call( self._cmd_template % (exclude_str, self._prefix, self._path2)) .and_return(self._output_excluded)) self.db_mock.get_dictionary.expect_call().and_return(self._known_files) # playback s = source.rsync_source(self.db_mock, self._prefix, excludes=('2.6.30-rc2',)) s.add_path('v2.6/patch-2.6.*.bz2', 'v2.6') s.add_path('v2.6/testing/patch*.bz2', 'v2.6/testing') self.assertEquals(s.get_new_files(), excluded_result) self.god.check_playback()
(of your own site specific trigger class); even if you don't set it you most certainly want to add a couple of actions to the trigger instance to be executed for the new kernels (by default the list is empty and nothing will happen with the new kernels other than being included in the known kernels database so future lookups will not consider them new again) """ from autotest_lib.mirror import database, source as source_module from autotest_lib.mirror import trigger as trigger_module # create a database object where to store information about known files db = database.dict_database('rsync.kernel.org.db') # create a source object that will be used to fetch the list of new kernel # files (this example uses rsync_source) source = source_module.rsync_source( db, 'rsync://rsync.kernel.org/pub/linux/kernel', excludes=('2.6.0-test*/', 'broken-out/', '*.sign', '*.gz')) source.add_path('v2.6/patch-2.6.*.bz2', 'v2.6') source.add_path('v2.6/linux-2.6.[0-9].tar.bz2', 'v2.6') source.add_path('v2.6/linux-2.6.[0-9][0-9].tar.bz2', 'v2.6') source.add_path('v2.6/testing/patch*.bz2', 'v2.6/testing') source.add_path('v2.6/snapshots/*.bz2', 'v2.6/snapshots') source.add_path('people/akpm/patches/2.6/*', 'akpm') # Given a list of files filter and transform it for entries that look like # legitimate releases (may be empty in which case no filtering/transformation # is done). If you want to replace the matched filename to only a part of it # put the part you want extracted in a match group named "arg". filter_exprs = ( # The major tarballs r'^(.*/)?linux-(?P<arg>2\.6\.\d+)\.tar\.bz2$',
(of your own site specific trigger class); even if you don't set it you most certainly want to add a couple of actions to the trigger instance to be executed for the new kernels (by default the list is empty and nothing will happen with the new kernels other than being included in the known kernels database so future lookups will not consider them new again) """ from autotest_lib.mirror import database, source as source_module from autotest_lib.mirror import trigger as trigger_module # create a database object where to store information about known files db = database.dict_database("rsync.kernel.org.db") # create a source object that will be used to fetch the list of new kernel # files (this example uses rsync_source) source = source_module.rsync_source( db, "rsync://rsync.kernel.org/pub/linux/kernel", excludes=("2.6.0-test*/", "broken-out/", "*.sign", "*.gz") ) source.add_path("v2.6/patch-2.6.*.bz2", "v2.6") source.add_path("v2.6/linux-2.6.[0-9].tar.bz2", "v2.6") source.add_path("v2.6/linux-2.6.[0-9][0-9].tar.bz2", "v2.6") source.add_path("v2.6/testing/patch*.bz2", "v2.6/testing") source.add_path("v2.6/snapshots/*.bz2", "v2.6/snapshots") source.add_path("people/akpm/patches/2.6/*", "akpm") # Given a list of files filter and transform it for entries that look like # legitimate releases (may be empty in which case no filtering/transformation # is done). If you want to replace the matched filename to only a part of it # put the part you want extracted in a match group named "arg". filter_exprs = ( # The major tarballs r"^(.*/)?linux-(?P<arg>2\.6\.\d+)\.tar\.bz2$",
(of your own site specific trigger class); even if you don't set it you most certainly want to add a couple of actions to the trigger instance to be executed for the new kernels (by default the list is empty and nothing will happen with the new kernels other than being included in the known kernels database so future lookups will not consider them new again) """ from autotest_lib.mirror import database, source as source_module from autotest_lib.mirror import trigger as trigger_module # create a database object where to store information about known files db = database.dict_database('rsync.kernel.org.db') # create a source object that will be used to fetch the list of new kernel # files (this example uses rsync_source) source = source_module.rsync_source(db, 'rsync://rsync.kernel.org/pub/linux/kernel', excludes=('2.6.0-test*/', 'broken-out/', '*.sign', '*.gz')) source.add_path('v2.6/patch-2.6.*.bz2', 'v2.6') source.add_path('v2.6/linux-2.6.[0-9].tar.bz2', 'v2.6') source.add_path('v2.6/linux-2.6.[0-9][0-9].tar.bz2', 'v2.6') source.add_path('v2.6/testing/patch*.bz2', 'v2.6/testing') source.add_path('v2.6/snapshots/*.bz2', 'v2.6/snapshots') source.add_path('people/akpm/patches/2.6/*', 'akpm') # Given a list of files filter and transform it for entries that look like # legitimate releases (may be empty in which case no filtering/transformation # is done). If you want to replace the matched filename to only a part of it # put the part you want extracted in a match group named "arg". filter_exprs = ( # The major tarballs r'^(.*/)?linux-(?P<arg>2\.6\.\d+)\.tar\.bz2$',