def test_capabilities_filter_featuretype_private_layer(self):
        xml = load_file(TestFilterCapabilities.capabilities_file)
        layers_whitelist = set()
        layers_whitelist.add("parks")
        filtered_xml = self._filter_xml(xml, "FeatureType", layers_whitelist)

        self.assertTrue("<Name>tows:parks</Name>" in filtered_xml)
    def test_capabilities_filter_featuretype_private_layer(self):
        xml = load_file(TestFilterCapabilities.capabilities_file)
        layers_whitelist = set()
        layers_whitelist.add("parks")
        filtered_xml = self._filter_xml(xml, "FeatureType", layers_whitelist)

        self.assertTrue("<Name>tows:parks</Name>" in filtered_xml)
예제 #3
0
def show_results(nb):
    window_size = int(nb / 20)
    for name in networks:
        res = tests.load_file("results/botnet_Compare_%s_all_%d.out" %
                              (name, nb))
        network = network_from_file("graphs//" + name)[0]
        real_res = []
        exp_res = []
        pol_res = []
        final_perf = []
        for x in res:
            (b, real_rewards, expected_rewards, policy_rewards, actions, perf,
             time) = x
            real_rewards = np.array(real_rewards)
            expected_rewards = np.array(expected_rewards)
            policy_rewards = np.array(policy_rewards)
            perf = np.array(perf)
            time = np.array(time)
            real_rewards = np.mean(real_rewards, axis=0)
            expected_rewards = np.mean(expected_rewards, axis=0)
            policy_rewards = np.mean(policy_rewards, axis=0)
            real_res.append((b, real_rewards))
            exp_res.append((b, expected_rewards))
            pol_res.append((b, policy_rewards))
            final_perf.append((b, np.mean(perf), np.max(perf), np.mean(time),
                               np.min(time), actions))

        subplot(2, 2, 1)
        for (name, perf) in real_res:
            tests.plot_perf(perf, window_size, name)
        ylabel("Real rewards")
        #f = figure(2)
        axis(sharex=True)
        subplot(2, 2, 3)
        for (name, perf) in exp_res:
            tests.plot_perf(perf, window_size, name)
        ylabel("Expected rewards")
        #f = figure(3)
        axis(sharex=True)
        subplot(1, 2, 2)
        for (name, perf) in pol_res:
            tests.plot_perf(perf, window_size, name)
        ylabel("Policy rewards")
        tests.show_with_legend(f)

        for (b_name, mean_p, max_p, mean_t, min_t, actions) in final_perf:
            print(b_name,
                  "Mean perf:",
                  mean_p,
                  "Max perf:",
                  max_p,
                  "Mean time:",
                  mean_t,
                  "Min time:",
                  min_t,
                  "Actions:",
                  actions,
                  sep='\t')
        x = input("Enter something to exit :")
예제 #4
0
    def test_proxy_get_capabilities_user2(self):
        from c2cgeoportal_geoportal.views.tinyowsproxy import TinyOWSProxy

        request = _create_dummy_request(username="******")

        responses.get(
            url="http://mapserver:8080/",
            body=load_file(self.capabilities_response_file),
        )

        response = TinyOWSProxy(request).proxy()

        self.assertEqual(
            load_file(self.capabilities_response_filtered_file2).strip(),
            response.body.decode().replace("  \n", "").strip(),
        )
        self.assertEqual("200 OK", response.status)
예제 #5
0
def show_results():
    for name in networks:
        network = network_from_file("graphs//" + name)[0]
        b = "ThompsonSampling"
        [actions, times, rewards, values] = tests.load_file(
            "results/beta_%d_%s_%d.out" % (network.size, b, nb_trials))
        tests.plot_with_legend(values, times, "Time")
        tests.plot_with_legend(values, rewards, "Reward")
        tests.show_with_legend()
예제 #6
0
    def test_proxy_get_capabilities_get(self):
        from c2cgeoportal_geoportal.views.tinyowsproxy import TinyOWSProxy

        request = _create_dummy_request(username="******")
        request.params.update(
            dict(service="wfs", version="1.1.0", request="GetCapabilities"))

        responses.get(
            url="http://mapserver:8080/",
            body=load_file(self.capabilities_response_file),
        )

        response = TinyOWSProxy(request).proxy()

        self.assertEqual(
            load_file(self.capabilities_response_filtered_file1).strip(),
            response.body.decode().replace("  \n", "").strip(),
        )
        self.assertEqual("200 OK", response.status)
예제 #7
0
    def test_parse_body_getcapabilities(self):
        from c2cgeoportal_geoportal.views.tinyowsproxy import TinyOWSProxy

        request = _create_dummy_request()
        request.body = load_file(
            TestTinyOWSProxyViewNoDb.capabilities_request_file)

        (operation, typename) = TinyOWSProxy(request)._parse_body(request.body)

        self.assertEqual("getcapabilities", operation)
        self.assertEqual(set(), typename)
예제 #8
0
    def test_parse_body_transaction_insert(self):
        from c2cgeoportal_geoportal.views.tinyowsproxy import TinyOWSProxy

        request = _create_dummy_request()
        request.body = load_file(
            TestTinyOWSProxyViewNoDb.transaction_insert_request_file)

        (operation, typename) = TinyOWSProxy(request)._parse_body(request.body)

        self.assertEqual("transaction", operation)
        self.assertEqual({"parks"}, typename)
예제 #9
0
    def test_parse_body_describefeaturetype(self):
        from c2cgeoportal_geoportal.views.tinyowsproxy import TinyOWSProxy

        request = _create_dummy_request()
        request.body = load_file(
            TestTinyOWSProxyViewNoDb.describefeature_request_file)

        (operation, typename) = TinyOWSProxy(request)._parse_body(request.body)

        self.assertEqual("describefeaturetype", operation)
        self.assertEqual(set(["layer_1"]), typename)
예제 #10
0
    def setUp(self):
        self.yaml_str = load_file("control.yaml")
        self.control = ControlFile()
        self.control.config = {
            "access_key": "foo",
            "secret_key": "baz",
            "region": "eu-central-1",
            "sqs_s3_queue": "http://foo-queue",
        }

        # set mock clients
        self.control._sqs_client = unittest.mock.MagicMock()
예제 #11
0
    def test_proxy_describe_feature_type_post_multiple_types(self):
        from pyramid.httpexceptions import HTTPBadRequest

        from c2cgeoportal_geoportal.views.tinyowsproxy import TinyOWSProxy

        request = _create_dummy_request(username="******")
        request.method = "POST"
        request.body = load_file(
            TestTinyOWSProxyView.describefeaturetype_request_multiple_file)

        with pytest.raises(HTTPBadRequest):
            TinyOWSProxy(request).proxy()
예제 #12
0
def show_results():
    botnets_names = [
        "RewardTentative", "Sarsa", "QLearning", "QLearning - Potential",
        "ThompsonSampling", "ModelBasedThompson", "FullModelBasedThompson"
    ]
    for name in networks:
        network = network_from_file("graphs//" + name)[0]
        print(name)
        for b in botnets_names:
            print(b)
            [actions, times, rewards, values] = tests.load_file(
                "results/gamma_%d_%s_%d.out" % (network.size, b, nb_trials))
            tests.plot_with_legend(values, times, b)
        tests.show_with_legend()
예제 #13
0
def show_results():
    for name in networks:
        network = network_from_file("graphs//" + name)[0]
        b = FullModelBasedThompson(thompson_standard,
                                   network.graph,
                                   gamma=0.9,
                                   nb_trials=nb_trials,
                                   initial_nodes=network.initial_nodes)
        [actions, times, rewards, values] = tests.load_file(
            "results/alpha_p_%d_%s_%d.out" % (network.size, b.type, nb_trials))
        values = [math.log(v, 10) for v in values]
        tests.plot_with_legend(values, times, "Time")
        tests.plot_with_legend(values, rewards, "Reward")
        tests.show_with_legend()
예제 #14
0
def show_results():
    botnets_names = [
        "Sarsa", "QLearning", "QLearning - Potential", "ThompsonSampling"
    ]
    for name in networks:
        network = network_from_file("graphs//" + name)[0]
        print(name)
        for b in botnets_names:
            print(b)
            [actions, times, rewards, values] = tests.load_file(
                "results/alpha_%d_%s_%d.out" % (network.size, b, nb_trials))
            values = [math.log(v, 10) for v in values]
            tests.plot_with_legend(values, times, "Time")
            tests.plot_with_legend(values, rewards, "Reward")
            tests.show_with_legend()
예제 #15
0
    def test_proxy_describe_feature_type_post(self):
        from c2cgeoportal_geoportal.views.tinyowsproxy import TinyOWSProxy

        request = _create_dummy_request(username="******")
        request.method = "POST"
        request.body = load_file(
            TestTinyOWSProxyView.describefeaturetype_request_file)

        responses.post(
            url="http://mapserver:8080/",
            body="unfiltered response",
        )

        response = TinyOWSProxy(request).proxy()

        self.assertEqual("200 OK", response.status)
예제 #16
0
import unittest
from ddt import ddt, data, unpack

from yew.core.components import Component
from tests import load_file

servers = load_file("examples/configuration/base.yaml")


@ddt
class BaseTestCases(unittest.TestCase):
    @data(
        ["ProxyAccept", "::ffff:192.168.1.1", True],
        ["ProxyAccept", "::ffff:127.0.0.0", True],
        ["ProxyAccept", "::ffff:127.1.0.0", False],
        ["ProxyRefuse", "::ffff:127.0.0.1", False],
        ["ProxyRefuse", "::ffff:192.168.1.10", False],
        ["ProxyRefuse", "::ffff:192.168.1.11", True],
    )
    @unpack
    def test_accept_filter(self, server_name, ip, result):
        assert servers[server_name].can_accept_ip(ip) is result

    @data(
        ["Group1", "io", "pwd", True],
        ["Group1", "foo", "bar", True],
        ["Group1", "io", "bar", False],
    )
    @unpack
    def test_user_authentication(self, component_name, usr, pwd, result):
        assert Component.get("groups", component_name).validate_user(
예제 #17
0
 def test_should_parser_item_from_response(self):
     links = parser.get_links(load_file('tests/resources/results.html'))
     self.assertEqual(len(links), 30)
예제 #18
0
def load_response_file(filename: str) -> dict:
    return load_file(os.path.join("response/", filename))
예제 #19
0
def load_horizon_file(filename: str) -> dict:
    return load_file(os.path.join("model/horizon/", filename))
예제 #20
0
import unittest
from ddt import ddt, data, unpack

from yew.modules.http.http import HTTPRequest, HTTPResponse
from yew.core.buffer import Buffer
from yew.core.components import Component

from tests import load_file
servers = load_file("examples/configuration/parent.yaml")


@ddt
class ParentTestCases(unittest.TestCase):
    @data([
        "ParentProxy", 1, "HTTP/1.1 407 whatever\r\nServer: Fancy 1.0\r\n\r\n"
    ], [
        "ParentProxy", 4, "HTTP/1.1 502 whatever\r\nServer: Fancy 1.0\r\n\r\n"
    ], [
        "ParentProxy", 0, "HTTP/1.1 200 whatever\r\nServer: Fancy 1.0\r\n\r\n"
    ])
    @unpack
    def test_parent_connect_response(self, componen_name, res, response):
        ret = Component.get("upstreams", componen_name).recv_connect_handle(
            HTTPResponse.from_buffer(Buffer(response.encode())))
        assert ret == res

    @data(
        ["RemoteProxy", "ParentProxy", True],
        ["RemoteProxy", "ParentProxyWrongCredentials", False],
    )
    @unpack
예제 #21
0
import unittest
from ddt import ddt, data, unpack

from yew.modules.http.http import HTTPRequest
from yew.core.buffer import Buffer
from yew.core.components import Component

from tests import load_file
servers = load_file("examples/configuration/rewrite.yaml")


@ddt
class RewriteTestCases(unittest.TestCase):
	
	@data(
		["ReverseProxy", "SiteA", 
			"GET / HTTP/1.1\r\nHost: www.site-a.com\r\n\r\n"],
		["ReverseProxy", "SiteB", 
			"GET / HTTP/1.1\r\nHost: www.site-b.com\r\n\r\n"],
		["ReverseProxy", "ReverseDefault", 
			"GET / HTTP/1.1\r\nHost: www.foo-bar.com\r\n\r\n"],
	)
	@unpack
	def test_upstream_selection(self, server_name, upstream_name, request):
		request = HTTPRequest.from_buffer(Buffer(request.encode()))
		assert servers[server_name].get_upstream(request) == Component.get(
			"upstreams", upstream_name)

	@data(
		["APIGateway", "/v1/shop/1/products", 
			"GET /api/shop/1/products?foo=bar HTTP/1.1\r\nHost: www.fancy-service.com\r\n\r\n"