def mockMiddlewareConfig(): return MetricsApiConfig( "README_API_KEY", lambda req: { "id": "123", "label": "testuser", "email": "*****@*****.**" }, buffer_length=1, )
def mockMiddlewareConfig(): return MetricsApiConfig( "koSyKkViOR5gD6yjBxlsprHfjAIlWOh6", lambda req: { "id": "123", "label": "testuser", "email": "*****@*****.**" }, buffer_length=1, )
def mockMiddlewareConfig(self, **kwargs): return MetricsApiConfig( "README_API_KEY", kwargs.get( "grouping_function", lambda req: { "api_key": "123", "label": "testuser", "email": "*****@*****.**", }, ), buffer_length=1, denylist=kwargs.get("denylist", []), allowlist=kwargs.get("allowlist", []), blacklist=kwargs.get("blacklist", []), whitelist=kwargs.get("whitelist", []), )
from datetime import datetime, timedelta import time from unittest.mock import Mock, MagicMock from werkzeug.datastructures import EnvironHeaders from flask import Flask, request import pytest from readme_metrics import MetricsApiConfig from readme_metrics.flask_readme import ReadMeMetrics from readme_metrics.ResponseInfoWrapper import ResponseInfoWrapper mock_config = MetricsApiConfig( "README_API_KEY", lambda req: { "id": "123", "label": "testuser", "email": "*****@*****.**" }, buffer_length=1000, ) class TestFlaskExtension: def setUp(self): pass def testInit(self): # the extension should register itself with the Flask application # provided to the constructor app = Mock() extension = ReadMeMetrics(config=mock_config, app=app)
from flask import Flask from readme_metrics import MetricsApiConfig, MetricsMiddleware app = Flask(__name__) # Docs: https://docs.readme.com/developers/docs/authentication#api-key-quick-start README_API_KEY = "YOUR_API_KEY" app.wsgi_app = MetricsMiddleware( app.wsgi_app, MetricsApiConfig( README_API_KEY, lambda req: { 'id': 'owlbert', 'label': 'Owlbert', 'email': '*****@*****.**' }, buffer_length= 1, # makes it so logs show up after each request, rather than after each batch of 10 )) @app.route('/', methods=['GET', 'POST']) def hello_world(): return 'Hello, World!'
""" WSGI config for django_metrics_test project. It exposes the WSGI callable as a module-level variable named ``application``. For more information on this file, see https://docs.djangoproject.com/en/3.1/howto/deployment/wsgi/ """ import os from django.core.wsgi import get_wsgi_application from readme_metrics import MetricsApiConfig, MetricsMiddleware os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_metrics_test.settings') application = get_wsgi_application() application = MetricsMiddleware( application, MetricsApiConfig("YOUR_API_KEY", lambda req: { 'id': '123', 'label': 'testuser', 'email': '*****@*****.**' }, buffer_length=1))