Example #1
0
    def CreateOnline(channel):
        '''Creates/creates an online server instance, meaning that both local and
    subversion/github resources are queried.
    '''
        branch_utility = ServerInstance._GetOrCreateBranchUtility()
        branch = branch_utility.GetBranchNumberForChannelName(channel)

        if branch == 'trunk':
            svn_url = '/'.join((url_constants.SVN_TRUNK_URL, 'src',
                                svn_constants.EXTENSIONS_PATH))
        else:
            svn_url = '/'.join((url_constants.SVN_BRANCH_URL, branch, 'src',
                                svn_constants.EXTENSIONS_PATH))

        viewvc_url = svn_url.replace(url_constants.SVN_URL,
                                     url_constants.VIEWVC_URL)

        object_store_creator_factory = ObjectStoreCreator.Factory(
            GetAppVersion(), branch, start_empty=True)

        svn_file_system = CachingFileSystem(
            SubversionFileSystem(AppEngineUrlFetcher(svn_url),
                                 AppEngineUrlFetcher(viewvc_url)),
            object_store_creator_factory)

        return ServerInstance(channel, object_store_creator_factory,
                              svn_file_system,
                              ServerInstance._GetOrCreateGithubFileSystem())
Example #2
0
def _CreateMemcacheFileSystem(branch, branch_memcache):
    svn_url = _GetURLFromBranch(branch) + '/' + EXTENSIONS_PATH
    stat_fetcher = AppEngineUrlFetcher(
        svn_url.replace(url_constants.SVN_URL, url_constants.VIEWVC_URL))
    fetcher = AppEngineUrlFetcher(svn_url)
    return MemcacheFileSystem(SubversionFileSystem(fetcher, stat_fetcher),
                              branch_memcache)
Example #3
0
  def testRevisions(self):
    # This is a super hacky test. Record the path that was fetched then exit the
    # test. Compare.
    class ValueErrorFetcher(object):
      def __init__(self):
        self.last_fetched = None

      def FetchAsync(self, path):
        self.last_fetched = path
        raise ValueError()

      def Fetch(self, path):
        self.last_fetched = path
        raise ValueError()

    file_fetcher = ValueErrorFetcher()
    stat_fetcher = ValueErrorFetcher()
    svn_path = 'svn:'

    svn_file_system = SubversionFileSystem(file_fetcher,
                                           stat_fetcher,
                                           svn_path,
                                           revision=42)

    self.assertRaises(ValueError, svn_file_system.ReadSingle, 'dir/file')
    self.assertEqual('dir/file?p=42', file_fetcher.last_fetched)
    # Stat() will always stat directories.
    self.assertRaises(ValueError, svn_file_system.Stat, 'dir/file')
    self.assertEqual('dir/?pathrev=42', stat_fetcher.last_fetched)

    self.assertRaises(ValueError, svn_file_system.ReadSingle, 'dir/')
    self.assertEqual('dir/?p=42', file_fetcher.last_fetched)
    self.assertRaises(ValueError, svn_file_system.Stat, 'dir/')
    self.assertEqual('dir/?pathrev=42', stat_fetcher.last_fetched)
Example #4
0
def _CreateSubversionFileSystem(path):
    fetcher = FakeUrlFetcher(path)
    return SubversionFileSystem(fetcher, fetcher, path), fetcher
Example #5
0
 def _CreateSubversionFileSystem(self):
   fetcher = FakeUrlFetcher(self._base_path)
   return SubversionFileSystem(fetcher, fetcher, self._base_path)
Example #6
0
 def setUp(self):
     self._base_path = os.path.join(sys.path[0], 'test_data', 'file_system')
     fetcher = FakeUrlFetcher(self._base_path)
     self._file_system = SubversionFileSystem(fetcher, fetcher)