#!/usr/bin/env python # Copyright 2014 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import os import unittest from environment import GetAppVersionNonMemoized class EnvironmentTest(unittest.TestCase): def testGetAppVersion(self): # GetAppVersion uses 2 heuristics: the CURRENT_VERSION_ID environment # variable that AppEngine sets, or the version extracted from app.yaml # if no such variable exists (e.g. preview.py). The latter, we assume, # is already tested because AppYamlHelper.ExtractVersion is already # tested. So, for this test, we fake a CURRENT_VERSION_ID. def test_single(expected, current_version_id): key = 'CURRENT_VERSION_ID' old_value = os.environ.get(key) os.environ[key] = current_version_id try: self.assertEqual(expected, GetAppVersionNonMemoized()) finally: if old_value is None: del os.environ[key] else: os.environ[key] = old_value def test_all(expected): test_single(expected, expected) test_single(expected, expected + '.48w7dl48wl') test_single(expected, expected + '/48w7dl48wl') test_single(expected, expected + '.48w7dl48wl.w847lw83') test_single(expected, expected + '.48w7dl48wl/w847lw83') test_single(expected, expected + '/48w7dl48wl.w847lw83') test_single(expected, expected + '/48w7dl48wl/w847lw83') test_all('2') test_all('2-0') test_all('2-0-25') test_all('2-0-25-b') if __name__ == '__main__': unittest.main()