# Path: src/utils.py
# def get_selenium_driver(browser_name: str) -> Union[Chrome, Firefox]:
#     """
#     Return the same instance to the Selenium driver.
# 
#     :param browser_name: the name of the browser: chrome or mozilla
#     :type browser_name: str
#     :return: an instance of the required driver.
#     :rtype: Union[Chrome, Mozilla]
#     """
#     if browser_name.upper() == 'CHROME':
#         return SingletonFactory.build(Chrome)
# 
#     elif browser_name.upper() == 'Mozilla':
#         return SingletonFactory.build(Firefox)
# 
#     else:
#         raise NotImplementedError


import abc
from src.utils import get_selenium_driver
            self.__builder.get_flow()
            # Make comparison
            if self.__builder.get_post_validation():
                self.__status = True
            else:
                self.__status = False

        else:
            self.__status = False
        # Post results
        self.__builder.get_report(self.__status)
        # Close driver
        self.__builder.close()


class Test:
    """
    Represent the complex object under construction.
    """

    def __init__(self):
        pass


class Builder(metaclass=abc.ABCMeta):
    """
    Abstract interface for defining parts of the Product
    """

    def __init__(self):

# Path: src/utils.py
# def get_selenium_driver(browser_name: str) -> Union[Chrome, Firefox]:
#     """
#     Return the same instance to the Selenium driver.
# 
#     :param browser_name: the name of the browser: chrome or mozilla
#     :type browser_name: str
#     :return: an instance of the required driver.
#     :rtype: Union[Chrome, Mozilla]
#     """
#     if browser_name.upper() == 'CHROME':
#         return SingletonFactory.build(Chrome)
# 
#     elif browser_name.upper() == 'Mozilla':
#         return SingletonFactory.build(Firefox)
# 
#     else:
#         raise NotImplementedError


# Path: src/builder/builder.py
import abc
from src.utils import get_selenium_driver

            self.__builder.get_flow()
            # Make comparison
            if self.__builder.get_post_validation():
                self.__status = True
            else:
                self.__status = False

        else:
            self.__status = False
        # Post results
        self.__builder.get_report(self.__status)
        # Close driver
        self.__builder.close()


class Test:
    """
    Represent the complex object under construction.
    """

    def __init__(self):
        pass


class Builder(metaclass=abc.ABCMeta):
    """
    Abstract interface for defining parts of the Product
    """

    def __init__(self):

        self._driver = get_selenium_driver('chrome')