def test_calculate_slugs_simple(self):
        test_listing = copy.deepcopy(TEST_LISTING)
        test_listing['slugs'] = []

        self.mox.StubOutWithMock(listing_service, 'make_slug')
        listing_service.make_slug(TEST_TAG1, TEST_SUBTAG1, TEST_NAME).AndReturn(
            'cat1/subcat1/TestName'
        )

        self.mox.ReplayAll()

        listing_service.calculate_slugs(test_listing)
        self.assertEqual(['cat1/subcat1/TestName'], test_listing['slugs'])
    def test_calculate_slugs_multiple_subtags(self):
        test_listing = copy.deepcopy(TEST_LISTING)
        test_listing['slugs'] = []
        test_listing['tags'] = TEST_TAGS_MULTIPLE_SUB_TAGS

        self.mox.StubOutWithMock(listing_service, 'make_slug')
        listing_service.make_slug(TEST_TAG1, TEST_SUBTAG1, TEST_NAME).AndReturn(
            'cat1/subcat1/TestName'
        )
        listing_service.make_slug(TEST_TAG1, TEST_SUBTAG2, TEST_NAME).AndReturn(
            'cat1/submeow2/TestName'
        )

        self.mox.ReplayAll()

        listing_service.calculate_slugs(test_listing)
        expected_slugs = ['cat1/subcat1/TestName', 'cat1/submeow2/TestName']
        self.assertEqual(expected_slugs, test_listing['slugs'])
    def test_make_slug(self):
        self.mox.StubOutWithMock(listing_service, 'make_slug_safe')
        listing_service.make_slug_safe(TEST_NAME).InAnyOrder().AndReturn(
            TEST_NAME
        )
        listing_service.make_slug_safe(TEST_TAG1).InAnyOrder().AndReturn(
            TEST_TAG1
        )
        listing_service.make_slug_safe(TEST_SUBTAG1).InAnyOrder().AndReturn(
            TEST_SUBTAG1
        )

        self.mox.ReplayAll()

        result = listing_service.make_slug(TEST_TAG1, TEST_SUBTAG1, TEST_NAME)
        self.assertEqual('cat1/subcat1/TestName', result)