# Path: hotness/databases/database.py
# class Database:
#     """
#     Abstract class for databases used by the-new-hotness to store key/value pairs.
#     This class must be inherited by every external database.
#     """
# 
#     def insert(self, key: str, value: str) -> dict:
#         """
#         Insert method that should be implemented by every child class.
# 
#         It should insert key/value pair to database using the external system and
#         return dictionary containing any related info.
# 
#         In case of any issue that would prevent inserting the data, method should
#         raise an exception.
#         """
#         raise NotImplementedError
# 
#     def retrieve(self, key: str) -> dict:
#         """
#         Retrieve method that should be implemented by every child class.
# 
#         It should retrieve value for key from database using the external system and
#         return dictionary containing any related info.
# 
#         In case of any issue that would prevent retrieving the data, method should
#         raise an exception.
#         """
#         raise NotImplementedError


import pytest
from hotness.databases import Database



class TestDatabaseInsert:
    """
    Test class for `hotness.databases.Database.insert` method.
    """

    def test_insert(self):
        """
        Assert that insert in abstract class raise NotImplementedError.
        """
        key = "key"
        value = "value"
        database = Database()

        with pytest.raises(NotImplementedError):
            database.insert(key, value)


class TestDatabaseRetrieve:
    """
    Test class for `hotness.databases.Database.retrieve` method.
    """

    def test_retrieve(self):
        """
        Assert that retrieve in abstract class raise NotImplementedError.
        """
        key = "key"

# Path: hotness/databases/database.py
# class Database:
#     """
#     Abstract class for databases used by the-new-hotness to store key/value pairs.
#     This class must be inherited by every external database.
#     """
# 
#     def insert(self, key: str, value: str) -> dict:
#         """
#         Insert method that should be implemented by every child class.
# 
#         It should insert key/value pair to database using the external system and
#         return dictionary containing any related info.
# 
#         In case of any issue that would prevent inserting the data, method should
#         raise an exception.
#         """
#         raise NotImplementedError
# 
#     def retrieve(self, key: str) -> dict:
#         """
#         Retrieve method that should be implemented by every child class.
# 
#         It should retrieve value for key from database using the external system and
#         return dictionary containing any related info.
# 
#         In case of any issue that would prevent retrieving the data, method should
#         raise an exception.
#         """
#         raise NotImplementedError


# Path: tests/databases/test_database.py
import pytest
from hotness.databases import Database




class TestDatabaseInsert:
    """
    Test class for `hotness.databases.Database.insert` method.
    """

    def test_insert(self):
        """
        Assert that insert in abstract class raise NotImplementedError.
        """
        key = "key"
        value = "value"
        database = Database()

        with pytest.raises(NotImplementedError):
            database.insert(key, value)


class TestDatabaseRetrieve:
    """
    Test class for `hotness.databases.Database.retrieve` method.
    """

    def test_retrieve(self):
        """
        Assert that retrieve in abstract class raise NotImplementedError.
        """
        key = "key"

        database = Database()