blob: d3d70eded77415776fed8983bc92b088afa52ddb [file] [log] [blame]
# Copyright 2023 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import unittest
from google.appengine.ext import ndb
from google.appengine.ext import testbed
from redirect import redirect_custom_value
class TestRedirectCustomValue(unittest.TestCase):
def setUp(self):
self.testbed = testbed.Testbed()
self.testbed.activate()
self.testbed.init_datastore_v3_stub()
self.testbed.init_memcache_stub()
ndb.get_context().clear_cache()
def tearDown(self):
self.testbed.deactivate()
def testGetRedirectCustomValue(self):
redirectCustomValue = redirect_custom_value.RedirectCustomValue
redirectCustomValue(
ProjectName='a',
MonorailType='test',
MonorailValue='a',
RedirectType='t',
RedirectValue='v').put()
(t, v) = redirectCustomValue.Get('a', 'test', 'a')
self.assertEqual(t, 't')
self.assertEqual(v, 'v')
def testGetRedirectCustomValueWithoutValue(self):
redirectCustomValue = redirect_custom_value.RedirectCustomValue
(t, v) = redirectCustomValue.Get('a', 'test', 'a')
self.assertEqual(t, None)
self.assertEqual(v, None)
def testGetRedirectCustomValueOnlyReturnTheFirstMatch(self):
# There should be only one match in db.
# This may change if we decided to support mutiple value mapping.
redirectCustomValue = redirect_custom_value.RedirectCustomValue
redirectCustomValue(
ProjectName='a',
MonorailType='test',
MonorailValue='a',
RedirectType='t1',
RedirectValue='v1').put()
redirectCustomValue(
ProjectName='a',
MonorailType='test',
MonorailValue='a',
RedirectType='t2',
RedirectValue='v2').put()
(t, v) = redirectCustomValue.Get('a', 'test', 'a')
self.assertEqual(t, 't1')
self.assertEqual(v, 'v1')