Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions tests/test_memorycache.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import unittest

from imoog.cache.memorycache import InMemoryCache


class InMemoryCacheTests(unittest.IsolatedAsyncioTestCase):
async def asyncSetUp(self):
self.cache = InMemoryCache()
await self.cache.connect(max_cache_size=10)

async def test_set_and_get_preserve_image_and_mime(self):
await self.cache.set("asset", b"image bytes", "image/png")

self.assertEqual(
await self.cache.get("asset"),
(b"image bytes", "image/png"),
)

async def test_get_returns_none_when_either_part_is_missing(self):
self.cache._connection["image-only"] = b"image bytes"
self.cache._connection["mime-only__mime__"] = "image/jpeg"

self.assertIsNone(await self.cache.get("image-only"))
self.assertIsNone(await self.cache.get("mime-only"))
self.assertIsNone(await self.cache.get("unknown"))

async def test_delete_removes_both_parts_and_reports_result(self):
await self.cache.set("asset", b"image bytes", "image/gif")

self.assertTrue(await self.cache.delete("asset"))
self.assertIsNone(await self.cache.get("asset"))
self.assertFalse(await self.cache.delete("asset"))

async def test_cleanup_clears_cached_values(self):
await self.cache.set("asset", b"image bytes", "image/webp")

await self.cache.cleanup()

self.assertEqual(self.cache._connection, {})


if __name__ == "__main__":
unittest.main()
34 changes: 34 additions & 0 deletions tests/test_opengraph.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import unittest

from imoog.opengraph import generate_opengraph_tag, generate_tags_from_dict


class OpenGraphTests(unittest.TestCase):
def test_generate_opengraph_tag_adds_namespace(self):
self.assertEqual(
generate_opengraph_tag("title", "An image"),
'<meta property="og:title" content="An image" />',
)

def test_generate_tags_from_dict_preserves_input_order(self):
properties = {
"title": "An image",
"type": "website",
"site_name": "imoog",
}

self.assertEqual(
generate_tags_from_dict(properties),
[
'<meta property="og:title" content="An image" />',
'<meta property="og:type" content="website" />',
'<meta property="og:site_name" content="imoog" />',
],
)

def test_generate_tags_from_empty_dict_returns_empty_list(self):
self.assertEqual(generate_tags_from_dict({}), [])


if __name__ == "__main__":
unittest.main()