odoo/ext/custom-addons/cam_testenv/controllers/testenv_controller.py

67 lines
1.5 KiB
Python

# -*- coding: utf-8 -*-
import ast
import base64
import csv
import glob
import itertools
import logging
import operator
import datetime
import hashlib
import os
import re
import simplejson
import time
import urllib
import urllib2
import urlparse
import xmlrpclib
import zlib
from xml.etree import ElementTree
from cStringIO import StringIO
import babel.messages.pofile
import werkzeug.utils
import werkzeug.wrappers
try:
import xlwt
except ImportError:
xlwt = None
import openerp
import openerp.modules.registry
from openerp.tools.translate import _
from openerp.tools import config
from openerp.addons.web import http
class WebClient(http.Controller):
_cp_path = "/web/testenv"
@http.jsonrequest
def testmode(self, req, db=False):
if not db and req and req.session:
db = req.session._db
if db:
h = req.httprequest.environ['HTTP_HOST'].split(':')[0]
d = h.split('.')[0]
r = openerp.tools.config.get('dbfilter_test', 'test*').replace('%h', h).replace('%d', d)
try:
pattern_list = eval(r)
if not hasattr(pattern_list, '__iter__'):
pattern_list = [pattern_list]
except:
pattern_list = [r]
for pattern in pattern_list:
if isinstance(pattern, str) and re.match(pattern, db):
return True
return False
# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: