39 lines
997 B
Nix
39 lines
997 B
Nix
|
import ./make-test.nix ({ pkgs, ... }:
|
||
|
{
|
||
|
name = "uwsgi";
|
||
|
meta = with pkgs.stdenv.lib.maintainers; {
|
||
|
maintainers = [ lnl7 ];
|
||
|
};
|
||
|
machine = { pkgs, ... }: {
|
||
|
services.uwsgi.enable = true;
|
||
|
services.uwsgi.plugins = [ "python3" ];
|
||
|
services.uwsgi.instance = {
|
||
|
type = "emperor";
|
||
|
vassals.hello = {
|
||
|
type = "normal";
|
||
|
master = true;
|
||
|
workers = 2;
|
||
|
http = ":8000";
|
||
|
module = "wsgi:application";
|
||
|
chdir = pkgs.writeTextDir "wsgi.py" ''
|
||
|
from flask import Flask
|
||
|
application = Flask(__name__)
|
||
|
|
||
|
@application.route("/")
|
||
|
def hello():
|
||
|
return "Hello World!"
|
||
|
'';
|
||
|
pythonPackages = self: with self; [ flask ];
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
testScript =
|
||
|
''
|
||
|
$machine->waitForUnit('multi-user.target');
|
||
|
$machine->waitForUnit('uwsgi.service');
|
||
|
$machine->waitForOpenPort(8000);
|
||
|
$machine->succeed('curl -v 127.0.0.1:8000 | grep "Hello World!"');
|
||
|
'';
|
||
|
})
|