Merge branch 'main' into avm99963-monorail
Merged commit 34d8229ae2b51fb1a15bd208e6fe6185c94f6266
GitOrigin-RevId: 7ee0917f93a577e475f8e09526dd144d245593f4
diff --git a/redirect/test/redirect_custom_value_test.py b/redirect/test/redirect_custom_value_test.py
new file mode 100644
index 0000000..d3d70ed
--- /dev/null
+++ b/redirect/test/redirect_custom_value_test.py
@@ -0,0 +1,62 @@
+# 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')