Files
dungeon-sheets/tests/test_features.py
T
2021-04-16 11:28:05 -05:00

34 lines
1.2 KiB
Python

#!/usr/bin/env python
from unittest import TestCase
from dungeonsheets import features
from dungeonsheets.features import create_feature, Feature, all_features
class TestFeatures(TestCase):
"""Tests for features and feature-related activities."""
def test_all_features(self):
# Make sure only features are returned
for ThisFeature in all_features():
self.assertTrue(
isinstance(ThisFeature, type),
f"``all_features`` returned {ThisFeature} (not a class)",
)
self.assertTrue(
issubclass(ThisFeature, Feature),
f"``all_features`` returned {ThisFeature} (not a feature)",
)
# Pick a couple of known features to spot-check for
all_the_features = list(all_features())
self.assertIn(features.FalseIdentity, all_the_features)
self.assertIn(features.DivineSmite, all_the_features)
def test_create_feature(self):
NewFeature = create_feature(name="Hello world")
self.assertTrue(issubclass(NewFeature, Feature))
self.assertEqual(NewFeature.name, "Hello world")
feature = NewFeature()
print(feature, feature.__class__, type(feature))