Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

  • cde5674
  • /
  • services
  • /
  • party
  • /
  • test_party_setting_service.py
Raw File Download

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
content badge
swh:1:cnt:4aa6e34cd9bb1ee1f3ba11288f089744bd8405be
directory badge
swh:1:dir:f4bc517486a8a17d811759aaa2133b30b73f2131

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • content
  • directory
(requires biblatex-software package)
Generating citation ...
(requires biblatex-software package)
Generating citation ...
test_party_setting_service.py
"""
:Copyright: 2014-2025 Jochen Kupperschmidt
:License: Revised BSD (see `LICENSE` file for details)
"""

import pytest

from byceps.services.party import party_setting_service
from byceps.services.party.models import PartyID, PartySetting


PARTY_ID = PartyID('favorite-party')


@pytest.fixture(scope='module')
def party(make_party, brand):
    return make_party(brand, PARTY_ID, 'My favorite party!')


def test_create(party):
    party_id = PARTY_ID
    name = 'name1'
    value = 'value1'

    assert party_setting_service.find_setting(party_id, name) is None

    setting = party_setting_service.create_setting(party_id, name, value)

    assert setting is not None
    assert setting.party_id == party_id
    assert setting.name == name
    assert setting.value == value


def test_create_or_update(party):
    party_id = PARTY_ID
    name = 'name2'
    value1 = 'value2a'
    value2 = 'value2b'

    assert party_setting_service.find_setting(party_id, name) is None

    created_setting = party_setting_service.create_or_update_setting(
        party_id, name, value1
    )

    assert created_setting is not None
    assert created_setting.party_id == party_id
    assert created_setting.name == name
    assert created_setting.value == value1

    updated_setting = party_setting_service.create_or_update_setting(
        party_id, name, value2
    )

    assert updated_setting is not None
    assert updated_setting.party_id == party_id
    assert updated_setting.name == name
    assert updated_setting.value == value2


def test_remove(party):
    party_id = PARTY_ID
    name = 'name3'
    value = 'value3'

    party_setting_service.create_setting(party_id, name, value)
    assert party_setting_service.find_setting(party_id, name) is not None

    party_setting_service.remove_setting(party_id, name)

    assert party_setting_service.find_setting(party_id, name) is None


def test_find(party):
    party_id = PARTY_ID
    name = 'name4'
    value = 'value4'

    setting_before_create = party_setting_service.find_setting(party_id, name)
    assert setting_before_create is None

    party_setting_service.create_setting(party_id, name, value)

    setting_after_create = party_setting_service.find_setting(party_id, name)
    assert setting_after_create is not None
    assert setting_after_create.party_id == party_id
    assert setting_after_create.name == name
    assert setting_after_create.value == value


def test_find_value(party):
    party_id = PARTY_ID
    name = 'name5'
    value = 'value5'

    value_before_create = party_setting_service.find_setting_value(
        party_id, name
    )
    assert value_before_create is None

    party_setting_service.create_setting(party_id, name, value)

    value_after_create = party_setting_service.find_setting_value(
        party_id, name
    )
    assert value_after_create == value


def test_get_settings(party):
    party_id = PARTY_ID

    all_settings_before_create = party_setting_service.get_settings(party_id)
    assert all_settings_before_create == set()

    for name, value in {
        ('name6a', 'value6a'),
        ('name6b', 'value6b'),
        ('name6c', 'value6c'),
    }:
        party_setting_service.create_setting(party_id, name, value)

    all_settings_after_create = party_setting_service.get_settings(party_id)
    assert all_settings_after_create == {
        PartySetting(party_id=party_id, name='name6a', value='value6a'),
        PartySetting(party_id=party_id, name='name6b', value='value6b'),
        PartySetting(party_id=party_id, name='name6c', value='value6c'),
    }


def teardown_function(func):
    if func is test_create:
        party_setting_service.remove_setting(PARTY_ID, 'name1')
    elif func is test_create_or_update:
        party_setting_service.remove_setting(PARTY_ID, 'name2')
    elif func is test_find:
        party_setting_service.remove_setting(PARTY_ID, 'name4')
    elif func is test_find_value:
        party_setting_service.remove_setting(PARTY_ID, 'name5')
    elif func is test_get_settings:
        for name in 'name6a', 'name6b', 'name6c':
            party_setting_service.remove_setting(PARTY_ID, name)

back to top

Software Heritage — Copyright (C) 2015–2026, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Content policy— Contact— JavaScript license information— Web API