コード例 #1
0
    def test_including_and_excluding(self):
        class MyTaskSet(TaskSet):
            @task
            def not_included_or_excluded(self):
                pass

            @tag('included')
            @task
            def included(self):
                pass

            @tag('excluded')
            @task
            def excluded(self):
                pass

            @tag('included', 'excluded')
            @task
            def included_and_excluded(self):
                pass

        filter_tasks_by_tags(MyTaskSet,
                             tags=set(['included']),
                             exclude_tags=set(['excluded']))
        self.assertListEqual(MyTaskSet.tasks, [MyTaskSet.included])
コード例 #2
0
    def test_tagged_tasks_shared_across_tasksets(self):
        @tag('tagged')
        def shared_task():
            pass

        def untagged_shared_task():
            pass

        @tag('tagged')
        class SharedTaskSet(TaskSet):
            @task
            def inner_task(self):
                pass

        class IncludeTaskSet(TaskSet):
            tasks = [shared_task, untagged_shared_task, SharedTaskSet]

        class ExcludeTaskSet(TaskSet):
            tasks = [shared_task, untagged_shared_task, SharedTaskSet]

        filter_tasks_by_tags(IncludeTaskSet, tags=set(['tagged']))

        self.assertListEqual(IncludeTaskSet.tasks,
                             [shared_task, SharedTaskSet])
        self.assertListEqual(IncludeTaskSet.tasks[1].tasks,
                             [SharedTaskSet.inner_task])

        filter_tasks_by_tags(ExcludeTaskSet, exclude_tags=set(['tagged']))

        self.assertListEqual(ExcludeTaskSet.tasks, [untagged_shared_task])
コード例 #3
0
    def test_including_tasksets(self):
        class MyTaskSet(TaskSet):
            @task
            class MixedNestedTaskSet(TaskSet):
                @tag('included')
                @task
                def included(self):
                    pass

                @task
                def not_included(self):
                    pass

            @tag('included')
            @task
            class TaggedNestedTaskSet(TaskSet):
                @task
                def included(self):
                    pass

            @task
            class NormalNestedTaskSet(TaskSet):
                @task
                def not_included(self):
                    pass

        filter_tasks_by_tags(MyTaskSet, tags=set(['included']))
        self.assertListEqual(
            MyTaskSet.tasks,
            [MyTaskSet.MixedNestedTaskSet, MyTaskSet.TaggedNestedTaskSet])
        self.assertListEqual(MyTaskSet.MixedNestedTaskSet.tasks,
                             [MyTaskSet.MixedNestedTaskSet.included])
コード例 #4
0
ファイル: test_tags.py プロジェクト: admin0406/locust
    def test_including_tags(self):
        class MyTaskSet(TaskSet):
            @tag("include this", "other tag")
            @task
            def included(self):
                pass

            @tag("dont include this", "other tag")
            @task
            def not_included(self):
                pass

            @task
            def dont_include_this_either(self):
                pass

        self.assertListEqual(
            MyTaskSet.tasks,
            [
                MyTaskSet.included,
                MyTaskSet.not_included,
                MyTaskSet.dont_include_this_either,
            ],
        )

        filter_tasks_by_tags(MyTaskSet, tags=set(["include this"]))
        self.assertListEqual(MyTaskSet.tasks, [MyTaskSet.included])
コード例 #5
0
    def test_excluding_tags(self):
        class MyTaskSet(TaskSet):
            @tag('exclude this', 'other tag')
            @task
            def excluded(self):
                pass

            @tag('dont exclude this', 'other tag')
            @task
            def not_excluded(self):
                pass

            @task
            def dont_exclude_this_either(self):
                pass

        self.assertListEqual(MyTaskSet.tasks, [
            MyTaskSet.excluded, MyTaskSet.not_excluded,
            MyTaskSet.dont_exclude_this_either
        ])

        filter_tasks_by_tags(MyTaskSet, exclude_tags=set(['exclude this']))
        self.assertListEqual(
            MyTaskSet.tasks,
            [MyTaskSet.not_excluded, MyTaskSet.dont_exclude_this_either])
コード例 #6
0
ファイル: test_tags.py プロジェクト: uz2ee/locust
    def test_including_and_excluding(self):
        class MyTaskSet(TaskSet):
            @task
            def not_included_or_excluded(self):
                pass

            @tag("included")
            @task
            def included(self):
                pass

            @tag("excluded")
            @task
            def excluded(self):
                pass

            @tag("included", "excluded")
            @task
            def included_and_excluded(self):
                pass

        filter_tasks_by_tags(MyTaskSet,
                             tags={"included"},
                             exclude_tags={"excluded"})
        self.assertListEqual(MyTaskSet.tasks, [MyTaskSet.included])
コード例 #7
0
ファイル: test_tags.py プロジェクト: uz2ee/locust
    def test_excluding_tags(self):
        class MyTaskSet(TaskSet):
            @tag("exclude this", "other tag")
            @task
            def excluded(self):
                pass

            @tag("dont exclude this", "other tag")
            @task
            def not_excluded(self):
                pass

            @task
            def dont_exclude_this_either(self):
                pass

        self.assertListEqual(MyTaskSet.tasks, [
            MyTaskSet.excluded, MyTaskSet.not_excluded,
            MyTaskSet.dont_exclude_this_either
        ])

        filter_tasks_by_tags(MyTaskSet, exclude_tags={"exclude this"})
        self.assertListEqual(
            MyTaskSet.tasks,
            [MyTaskSet.not_excluded, MyTaskSet.dont_exclude_this_either])
コード例 #8
0
    def test_excluding_tags_with_weights(self):
        class MyTaskSet(TaskSet):
            @tag("dont exclude this")
            @task(2)
            def dont_exclude_twice(self):
                pass

            @task(3)
            def dont_exclude_3_times(self):
                pass

            @tag("excluded")
            @task(4)
            def exclude_4_times(self):
                pass

            @tag("excluded")
            @task(5)
            def exclude_5_times(self):
                pass

        self.assertListEqual(
            MyTaskSet.tasks,
            [
                MyTaskSet.dont_exclude_twice,
                MyTaskSet.dont_exclude_twice,
                MyTaskSet.dont_exclude_3_times,
                MyTaskSet.dont_exclude_3_times,
                MyTaskSet.dont_exclude_3_times,
                MyTaskSet.exclude_4_times,
                MyTaskSet.exclude_4_times,
                MyTaskSet.exclude_4_times,
                MyTaskSet.exclude_4_times,
                MyTaskSet.exclude_5_times,
                MyTaskSet.exclude_5_times,
                MyTaskSet.exclude_5_times,
                MyTaskSet.exclude_5_times,
                MyTaskSet.exclude_5_times,
            ],
        )

        filter_tasks_by_tags(MyTaskSet, exclude_tags=set(["excluded"]))

        self.assertListEqual(
            MyTaskSet.tasks,
            [
                MyTaskSet.dont_exclude_twice,
                MyTaskSet.dont_exclude_twice,
                MyTaskSet.dont_exclude_3_times,
                MyTaskSet.dont_exclude_3_times,
                MyTaskSet.dont_exclude_3_times,
            ],
        )
コード例 #9
0
    def _filter_tasks_by_tags(self):
        """
        Filter the tasks on all the user_classes recursively, according to the tags and
        exclude_tags attributes
        """
        if self.tags is not None:
            self.tags = set(self.tags)
        if self.exclude_tags is not None:
            self.exclude_tags = set(self.exclude_tags)

        for user_class in self.user_classes:
            filter_tasks_by_tags(user_class, self.tags, self.exclude_tags)
コード例 #10
0
    def test_include_tags_under_user(self):
        class MyUser(User):
            @tag('include this')
            @task
            def included(self):
                pass

            @tag('dont include this')
            @task
            def not_included(self):
                pass

            @task
            def dont_include_this_either(self):
                pass

        filter_tasks_by_tags(MyUser, tags=set(['include this']))

        self.assertListEqual(MyUser.tasks, [MyUser.included])
コード例 #11
0
ファイル: test_tags.py プロジェクト: admin0406/locust
    def test_excluding_tasksets(self):
        class MyTaskSet(TaskSet):
            @task
            class MixedNestedTaskSet(TaskSet):
                @tag("excluded")
                @task
                def excluded(self):
                    pass

                @task
                def not_excluded(self):
                    pass

            @task
            class ExcludedNestedTaskSet(TaskSet):
                @tag("excluded")
                @task
                def excluded(self):
                    pass

            @tag("excluded")
            @task
            class TaggedNestedTaskSet(TaskSet):
                @task
                def excluded(self):
                    pass

            @task
            class NormalNestedTaskSet(TaskSet):
                @task
                def not_excluded(self):
                    pass

        filter_tasks_by_tags(MyTaskSet, exclude_tags=set(["excluded"]))
        self.assertListEqual(
            MyTaskSet.tasks,
            [MyTaskSet.MixedNestedTaskSet, MyTaskSet.NormalNestedTaskSet],
        )
        self.assertListEqual(
            MyTaskSet.MixedNestedTaskSet.tasks,
            [MyTaskSet.MixedNestedTaskSet.not_excluded],
        )
コード例 #12
0
    def test_exclude_tags_under_user(self):
        class MyUser(User):
            @tag('exclude this')
            @task
            def excluded(self):
                pass

            @tag('dont exclude this')
            @task
            def not_excluded(self):
                pass

            @task
            def dont_exclude_this_either(self):
                pass

        filter_tasks_by_tags(MyUser, exclude_tags=set(['exclude this']))

        self.assertListEqual(
            MyUser.tasks,
            [MyUser.not_excluded, MyUser.dont_exclude_this_either])
コード例 #13
0
    def test_including_tags_with_weights(self):
        class MyTaskSet(TaskSet):
            @tag('included')
            @task(2)
            def include_twice(self):
                pass

            @tag('included')
            @task(3)
            def include_3_times(self):
                pass

            @tag('dont include this')
            @task(4)
            def dont_include_4_times(self):
                pass

            @task(5)
            def dont_include_5_times(self):
                pass

        self.assertListEqual(MyTaskSet.tasks, [
            MyTaskSet.include_twice, MyTaskSet.include_twice,
            MyTaskSet.include_3_times, MyTaskSet.include_3_times,
            MyTaskSet.include_3_times, MyTaskSet.dont_include_4_times,
            MyTaskSet.dont_include_4_times, MyTaskSet.dont_include_4_times,
            MyTaskSet.dont_include_4_times, MyTaskSet.dont_include_5_times,
            MyTaskSet.dont_include_5_times, MyTaskSet.dont_include_5_times,
            MyTaskSet.dont_include_5_times, MyTaskSet.dont_include_5_times
        ])

        filter_tasks_by_tags(MyTaskSet, tags=set(['included']))

        self.assertListEqual(MyTaskSet.tasks, [
            MyTaskSet.include_twice, MyTaskSet.include_twice,
            MyTaskSet.include_3_times, MyTaskSet.include_3_times,
            MyTaskSet.include_3_times
        ])