from typing import Union

from semver.scm import SCM


class MockSCM(SCM):
    def get_tag_version(self) -> str:
        return "1.0.0"

    def get_branch(self) -> str:
        return "main"

    def get_merge_branch(self) -> Union[str, None]:
        return "main"

    def commit_and_push(self, branch: str) -> None:
        pass

    def tag_version(self, version: str) -> None:
        pass

    def get_version_hash(self, version: str) -> str:
        return "HASH"

    def get_hash(self) -> str:
        return "HASH"