def test_list_remote_facory_returns_a_remote_then_revision_index_factory_returns_a_revision( self, ) -> None: self.set_list_remote(ListRemote()) self.assertIsInstance( self.revision_index_factory.get_revision_index(self.repository), RevisionIndexImpl, )
def pypi2nix_list_remote(): return ListRemote.from_git_ls_remote_output( "\n".join( [ "ref: refs/heads/master\tHEAD", "1234\trefs/heads/dev", "5678\trefs/heads/master", "1234\trefs/tags/v1.0", ] ) )
def get_list_remote(self, repository: GithubRepository) -> Optional[ListRemote]: repository_url = repository.url() returncode, output = self.command_runner.run_command( command=["git", "ls-remote", "--symref", repository_url], environment_variables={"GIT_ASKPASS": "", "GIT_TERMINAL_PROMPT": "0"}, merge_stderr=False, ) if returncode == 0: return ListRemote.from_git_ls_remote_output(output) else: return None
def remote_list(self) -> ListRemote: return ListRemote( heads={ "test-branch-1": "1", "test-branch-2": "2", "master": "master-ref" }, tags={ "tag-1^{}": "tag-1-ref-annotated", "tag-1": "tag-1-ref", "tag-2": "tag-2-ref", }, symrefs={"HEAD": "master"}, )
def setUp(self) -> None: self.url_hasher = FakeUrlHasher() self.revision_index_factory = FakeRevisionIndexFactory() self.expected_hash = "test hash" self.expected_revision = "test ref" self.url_hasher.sha256_sum = self.expected_hash self.revision_index_factory.revision_index = RevisionIndexImpl( ListRemote( symrefs={"HEAD": "refs/heads/master"}, heads={"master": self.expected_revision}, )) self.prefetcher = PrefetcherImpl( self.url_hasher, self.revision_index_factory, ) self.repository = GithubRepository("test owner", "test name")
def setUp(self) -> None: self.output = """From [email protected]:seppeljordan/nix-prefetch-github.git ref: refs/heads/master HEAD 9ce3bcc3610ffeb36f53bc690682f48c8d311764 HEAD 9ce3bcc3610ffeb36f53bc690682f48c8d311764 refs/heads/master c4e967f4a80e0c030364884e92f2c3cc39ae3ef2 refs/heads/travis-setup 1234567789473873487438239389538913598723 refs/heads/test/branch c4e967f4a80e0c030364884e92f2c3cc39ae3ef2 refs/pull/1/head c4f752b05270fd1ab812c4f6a41ddcd8769eb2e6 refs/pull/2/head ac17b18f3ba68bcea84b563523dfe82729e49aa8 refs/pull/5/head f7e74db312def6d0e57028b2b630962c768eeb9f refs/pull/7/head b12ab7fe187924d8536d27b2ddf3bcccd2612b32 refs/tags/1.3 cffdbcb3351f500b5ca8867a65261443b576b215 refs/tags/v2.0 0b63b78df5e5e17fa46cbdd8aac2b56e8622e5d3 refs/tags/v2.1 9ce3bcc3610ffeb36f53bc690682f48c8d311764 refs/tags/v2.2 """ self.remote_list = ListRemote.from_git_ls_remote_output(self.output)
def test_kind_from_ref_can_detect_tags(): assert ListRemote.kind_from_ref("refs/tags/my_tag") == RefKind.Tag
def remote_list(test_output): return ListRemote.from_git_ls_remote_output(test_output)
def sensu_go_ls_remote_output(self) -> ListRemote: with open( os.path.join(os.path.dirname(__file__), "sensu_go_git_ls_remote.txt")) as handle: return ListRemote.from_git_ls_remote_output(handle.read())
def get_list_remote_performer(_, intent): repository_url = "https://github.com/{owner}/{repo}.git".format( owner=intent.owner, repo=intent.repo) _, stdout = cmd(["git", "ls-remote", "--symref", repository_url]) return ListRemote.from_git_ls_remote_output(stdout)