Exemplo n.º 1
0
class RequestParserTest(unittest.TestCase):
    def setUp(self):
        self.env = {}
        self.env['wsgi.input'] = Mock()

    def test_ignores_requests_without_json_payload(self):
        self.env = 'some_text'
        self.request_parser = RequestParser(self.env)
        self.request = self.request_parser.parse()

        self.assertEquals(self.request, None)

    def test_detects_modified_files_in_single_commit(self):
        self.env['wsgi.input'].read.return_value = simple_payload
        self.request_parser = RequestParser(self.env)
        self.request = self.request_parser.parse()

        modified_files = set(['file4.py', 'file3.py'])
        self.assertEquals(self.request.modified_files, modified_files)

    def test_same_modified_file_is_detected_only_once_in_multiple_commits(self):
        self.env['wsgi.input'].read.return_value = complex_payload
        self.request_parser = RequestParser(self.env)
        self.request = self.request_parser.parse()

        modified_files = set(['file4.py', 'file3.py', 'file5.py'])
        self.assertEquals(self.request.modified_files, modified_files)
Exemplo n.º 2
0
def listen(env, start_response):
    """
    Basic POST request listener
    Just forwards request payload to RequestParser
    Response is irrelevant, nobody's listening...
    """
    request_parser = RequestParser(env)
    request_parser.parse()
    response_headers = [('Content-Type', 'text/plain')]
    start_response('200 OK', response_headers)
    return ""
Exemplo n.º 3
0
def get_response():
    request_parser = RequestParser(request)
    analysis_config, analysis_request = request_parser.parse()

    content = request.files.get('content')
    file_name = content.filename
    date_time_str = str(datetime.now()).replace("-", "_").replace(" ", "_").replace(":", "_").replace(".", "_")
    file_path = "uploads/{}_{}".format(date_time_str, file_name)
    content.save(file_path)
    return_file_name , saved_file_path = log_processor.process(file_path, analysis_config, analysis_request)

    si = io.StringIO()
    cw = csv.writer(si)
    csv_rows = []
    i=0
    with open(saved_file_path, 'r', newline='') as csv_file:
        csv_reader = csv.reader(csv_file, delimiter=',')
        for row in csv_reader:
            csv_rows.append(row)
            i+=1
    print(i)
    output='The result of your query :  '+str(i-1)+ ''' . The full report is downloaded automatically. 
    you can find the report in the project directory: '''+saved_file_path

    cw.writerows(csv_rows)
    response = make_response(si.getvalue())
    response.headers["Content-Disposition"] = f"attachment; filename={return_file_name}"
    response.headers["Content-type"] = "text/csv"
    
    return render_template('base.html',output=output)
    return response, 200
Exemplo n.º 4
0
def test_response_parse():
    request_parser = RequestParser()
    data = good_req

    raw_data = bytearray(data, 'utf-8')
    parsed_req = request_parser.parse(raw_data)

    assert parsed_req.headers["Host"] == 'www.google.com'