Exemplo n.º 1
0
    def test_valid_schedule(self):
        config = Config()

        for sched in [
                "every day",
                "every week",
                "every week on monday",
                "every week on tuesday",
                "every week on wednesday",
                "every week on thursday",
                "every week on friday",
                "every week on saturday",
                "every week on sunday",
                "every two weeks",
                "every two weeks on monday",
                "every two weeks on monday",
                "every two weeks on tuesday",
                "every two weeks on wednesday",
                "every two weeks on thursday",
                "every two weeks on friday",
                "every two weeks on saturday",
                "every two weeks on sunday",
                "every month"]:
            config.schedule = sched
            self.assertTrue(config.is_valid_schedule())

        for sched in [
                "every day on monday",
                "every month on tuesday",
                "some other crap",
                "every bla",
                "foo"]:
            config.schedule = sched
            self.assertFalse(config.is_valid_schedule())
Exemplo n.º 2
0
def test_pyup_yml_is_valid():
    with open(tools.PYUP_FILE, "r") as i:
        data = yaml.safe_load(i.read())
    config = Config()
    config.update_config(data)

    assert config.is_valid_schedule(), "Schedule %r is invalid" % (config.schedule,)
Exemplo n.º 3
0
    def test_update(self):
        update = {
            "branch":
            "some branch",
            "search":
            False,
            "requirements": [
                "foo.txt", {
                    "bar.txt": {
                        "pin": True,
                        "compile": {
                            "specs": ["baz.in", "foo.in"]
                        }
                    }
                }
            ]
        }
        config = Config()
        self.assertEqual(config.requirements, [])
        self.assertEqual(config.branch, "master")

        config.update_config(update)

        self.assertEqual(config.branch, "some branch")
        self.assertFalse(config.search)
        self.assertEqual(config.requirements[0].path, "foo.txt")
        self.assertEqual(config.requirements[1].path, "bar.txt")
        self.assertEqual(config.requirements[2].path, "baz.in")
        self.assertEqual(config.requirements[3].path, "foo.in")
        self.assertEqual(config.requirements[1].pin, True)
        self.assertEqual(config.requirements[1].compile.specs,
                         ["baz.in", "foo.in"])
Exemplo n.º 4
0
 def test_merge_pull_request_with_remove(self):
     mr = Mock()
     mr.merge.return_value = True
     config = Config()
     config.update_config({'gitlab': {'should_remove_source_branch': True}})
     self.provider._merge_merge_request(mr, config)
     mr.merge.assert_called_once_with(merge_when_pipeline_succeeds=True,
                                      remove_source_branch=True)
Exemplo n.º 5
0
def check_pyup_yml():
    with open(tools.PYUP_FILE, 'r') as i:
        data = yaml.safe_load(i.read())
    config = Config()
    config.update_config(data)

    if not config.is_valid_schedule():
        print('Schedule %r is invalid' % (config.schedule, ))
        sys.exit(1)
Exemplo n.º 6
0
    def test_assignees(self):
        config = Config()
        self.assertEqual(config.assignees, [])

        config.update_config({"assignees": "jay"})
        self.assertEqual(config.assignees, ["jay"])

        config.update_config({"assignees": ["jay", "bla"]})
        self.assertEqual(config.assignees, ["jay", "bla"])
Exemplo n.º 7
0
 def test_gitlab(self):
     update = {
         "gitlab": {
             "should_remove_source_branch": True,
             "merge_when_pipeline_succeeds": True
         }
     }
     config = Config()
     self.assertEqual(config.gitlab.should_remove_source_branch, False)
     self.assertEqual(config.gitlab.merge_when_pipeline_succeeds, False)
     config.update_config(update)
     self.assertEqual(config.gitlab.should_remove_source_branch, True)
     self.assertEqual(config.gitlab.merge_when_pipeline_succeeds, True)
Exemplo n.º 8
0
    def test_create_pull_request_merge_when_pipeline_succeeds(
            self, merge_mock):
        config = Config()
        self.provider.create_pull_request(self.repo, "title", "body", "master",
                                          "new", False, [], config)
        self.assertEqual(merge_mock.call_count, 0)

        config.update_config(
            {'gitlab': {
                'merge_when_pipeline_succeeds': True
            }})
        self.provider.create_pull_request(self.repo, "title", "body", "master",
                                          "new", False, [], config)
        self.assertEqual(merge_mock.call_count, 1)
        merge_mock.assert_called_once_with(ANY, config)
Exemplo n.º 9
0
 def test_create_pull_request_with_label(self):
     self.provider.create_pull_request(self.repo, "title", "body", "master",
                                       "new", "some-label", [], Config())
     self.assertEqual(
         self.provider.bundle.get_pull_request_class.call_count, 1)
     self.assertEqual(
         self.provider.bundle.get_pull_request_class().call_count, 1)
Exemplo n.º 10
0
 def test_merge_pull_request(self):
     mr = Mock()
     mr.merge.return_value = True
     config = Config()
     self.provider._merge_merge_request(mr, config)
     mr.merge.assert_called_once_with(merge_when_pipeline_succeeds=True,
                                      remove_source_branch=False)
Exemplo n.º 11
0
 def test_create_pull_request_with_exceeding_body(self):
     body = ''.join(["a" for i in range(0, 65536 + 1)])
     self.provider.create_pull_request(self.repo, "title", body, "master",
                                       "new", False, [], Config())
     self.assertEqual(
         self.provider.bundle.get_pull_request_class.call_count, 1)
     self.assertEqual(
         self.provider.bundle.get_pull_request_class().call_count, 1)
Exemplo n.º 12
0
 def test_defaults(self):
     config = Config()
     self.assertEqual(config.close_prs, True)
     self.assertEqual(config.branch, "master")
     self.assertEqual(config.pin, True)
     self.assertEqual(config.search, True)
     self.assertEqual(config.requirements, [])
     self.assertEqual(config.schedule, "")
     self.assertEqual(config.assignees, [])
     self.assertEqual(config.update, "all")
     self.assertEqual(config.pr_prefix, "")
Exemplo n.º 13
0
    def test_pr_prefix(self):
        config = Config()
        self.assertEqual(config.pr_prefix, '')

        config.update_config({"pr_prefix": "Some Prefix"})
        self.assertEqual(config.pr_prefix, "Some Prefix")

        config.pr_prefix = ""
        config.update_config({"pr_prefix": "Some | Prefix"})
        self.assertEqual(config.pr_prefix, "")
Exemplo n.º 14
0
    def test_update(self):
        update = {
            "branch": "some branch",
            "requirements": [
                "foo.txt",
                {"bar.txt": {"pin": True, "compile": {"specs": ["baz.in", "foo.in"]}}}
            ]
        }
        config = Config()
        self.assertEqual(config.requirements, [])
        self.assertEqual(config.branch, "master")

        config.update(update)

        self.assertEqual(config.branch, "some branch")
        self.assertEqual(config.requirements[0].path, "foo.txt")
        self.assertEqual(config.requirements[1].path, "bar.txt")
        self.assertEqual(config.requirements[2].path, "baz.in")
        self.assertEqual(config.requirements[3].path, "foo.in")
        self.assertEqual(config.requirements[1].pin, True)
        self.assertEqual(config.requirements[1].compile.specs, ["baz.in", "foo.in"])
Exemplo n.º 15
0
    def test_valid_schedule(self):
        config = Config()

        for sched in [
                "every day",
                "every week",
                "every week on monday",
                "every week on tuesday",
                "every week on wednesday",
                "every week on thursday",
                "every week on friday",
                "every week on saturday",
                "every week on sunday",
                "every two weeks",
                "every two weeks on monday",
                "every two weeks on tuesday",
                "every two weeks on wednesday",
                "every two weeks on thursday",
                "every two weeks on friday",
                "every two weeks on saturday",
                "every two weeks on sunday",
                "every month"]:
            config.schedule = sched
            self.assertTrue(config.is_valid_schedule())

        for sched in [
                "every day on monday",
                "every month on tuesday",
                "some other crap",
                "every bla",
                "foo"]:
            config.schedule = sched
            self.assertFalse(config.is_valid_schedule())
Exemplo n.º 16
0
    def test_generate_config(self):
        config = {"update": "insecure"}
        result = Config.generate_config_file(config)

        self.assertEqual(
            result,
            "# autogenerated pyup.io config file \n# see https://pyup.io/docs/configura" + \
            "tion/ for all available options\n\nupdate: insecure\n"
        )

        data = yaml.safe_load(result)

        self.assertEqual(config, data)
Exemplo n.º 17
0
    def test_generate_config(self):
        config = {"update": "insecure"}
        result = Config.generate_config_file(config)

        self.assertEqual(
            result,
            "# autogenerated pyup.io config file \n# see https://pyup.io/docs/configura" + \
            "tion/ for all available options\n\nupdate: insecure\n"
        )

        data = yaml.safe_load(result)

        self.assertEqual(config, data)
Exemplo n.º 18
0
    def test_can_pin(self):
        config = Config()
        config.requirements = [RequirementConfig(path="foo.txt", pin=False)]

        self.assertEqual(config.can_pin("foo.txt"), False)

        config.pin = False
        config.requirements[0].pin = True

        self.assertEqual(config.can_pin("foo.txt"), True)

        self.assertEqual(config.can_pin("other.txt"), False)
Exemplo n.º 19
0
    def test_can_update_insecure(self):
        config = Config()
        config.requirements = [RequirementConfig(path="foo.txt", update=False)]

        self.assertEqual(config.can_update_insecure("foo.txt"), False)

        config.update = False
        config.requirements[0].update = "insecure"

        self.assertEqual(config.can_update_insecure("foo.txt"), True)

        config.requirements[0].update = "all"

        self.assertEqual(config.can_update_insecure("foo.txt"), True)

        self.assertEqual(config.can_update_insecure("other.txt"), False)
Exemplo n.º 20
0
    def test_assignees(self):
        config = Config()
        self.assertEqual(config.assignees, [])

        config.update_config({"assignees": "jay"})
        self.assertEqual(config.assignees, ["jay"])

        config.update_config({"assignees": ["jay", "bla"]})
        self.assertEqual(config.assignees, ["jay", "bla"])
Exemplo n.º 21
0
    def test_pr_prefix(self):
        config = Config()
        self.assertEqual(config.pr_prefix, '')

        config.update_config({"pr_prefix": "Some Prefix"})
        self.assertEqual(config.pr_prefix, "Some Prefix")

        config.pr_prefix = ""
        config.update_config({"pr_prefix": "Some | Prefix"})
        self.assertEqual(config.pr_prefix, "")
Exemplo n.º 22
0
 def test_defaults(self):
     config = Config()
     self.assertEqual(config.close_prs, True)
     self.assertEqual(config.branch, "master")
     self.assertEqual(config.pin, True)
     self.assertEqual(config.search, True)
     self.assertEqual(config.requirements, [])
     self.assertEqual(config.schedule, "")
     self.assertEqual(config.assignees, [])
     self.assertEqual(config.commit_message_template_pin,
                      "Pin {package_name} to latest version {new_version}")
     self.assertEqual(
         config.commit_message_template_update,
         "Update {package_name} from {old_version} to {new_version}")
     self.assertEqual(config.update, "all")
     self.assertEqual(config.pr_prefix, "")
Exemplo n.º 23
0
    def test_can_update_all(self):
        config = Config()
        config.requirements = [
            RequirementConfig(path="foo.txt", update="insecure")
        ]

        self.assertEqual(config.can_update_all("foo.txt"), False)

        config.update = "insecure"
        config.requirements[0].update = "all"

        self.assertEqual(config.can_update_all("foo.txt"), True)

        self.assertEqual(config.can_update_all("other.txt"), False)
Exemplo n.º 24
0
    def test_pin_file(self):
        config = Config()
        config.requirements = [
            RequirementConfig(path="foo.txt", pin=False)
        ]

        self.assertEqual(config.pin_file("foo.txt"), False)

        config.pin = False
        config.requirements[0].pin = True

        self.assertEqual(config.pin_file("foo.txt"), True)

        self.assertEqual(config.pin_file("other.txt"), False)
Exemplo n.º 25
0
    def setUp(self):
        self.config = Config()

        self.req1 = Mock()
        self.req1.key = "foo"
        self.req1.latest_version_within_specs = "0.2"
        self.req1.needs_update = True
        self.req1.is_pinned = True
        self.req1.is_insecure = False

        self.req2 = Mock()
        self.req2.key = "bar"
        self.req2.latest_version_within_specs = "0.2"
        self.req2.needs_update = True
        self.req2.is_pinned = True
        self.req2.is_insecure = False

        self.req_file = Mock()
        self.req_file.requirements = [self.req1, self.req2]
        self.req_file.path = "requirements.txt"

        self.update = Update(requirement_files=[self.req_file],
                             config=self.config)
Exemplo n.º 26
0
 def test_repr(self):
     config = Config()
     self.assertEqual(config.__repr__(), str(config.__dict__))
Exemplo n.º 27
0
# consult the git log if you need to determine who owns an individual
# contribution.
#
# This Source Code Form is subject to the terms of the Mozilla Public License,
# v. 2.0. If a copy of the MPL was not distributed with this file, You can
# obtain one at http://mozilla.org/MPL/2.0/.
#
# END HEADER

from __future__ import division, print_function, absolute_import

import os
import sys

import yaml
from pyup.config import Config

from hypothesistooling import ROOT

PYUP_FILE = os.path.join(ROOT, '.pyup.yml')

if __name__ == '__main__':
    with open(PYUP_FILE, 'r') as i:
        data = yaml.safe_load(i.read())
    config = Config()
    config.update_config(data)

    if not config.is_valid_schedule():
        print('Schedule %r is invalid' % (config.schedule, ))
        sys.exit(1)
Exemplo n.º 28
0
 def test_repr(self):
     config = Config()
     self.assertEqual(config.__repr__(), str(config.__dict__))
Exemplo n.º 29
0
# consult the git log if you need to determine who owns an individual
# contribution.
#
# This Source Code Form is subject to the terms of the Mozilla Public License,
# v. 2.0. If a copy of the MPL was not distributed with this file, You can
# obtain one at http://mozilla.org/MPL/2.0/.
#
# END HEADER

from __future__ import division, print_function, absolute_import

import os
import sys

import yaml
from pyup.config import Config

from hypothesistooling import ROOT

PYUP_FILE = os.path.join(ROOT, '.pyup.yml')

if __name__ == '__main__':
    with open(PYUP_FILE, 'r') as i:
        data = yaml.safe_load(i.read())
    config = Config()
    config.update_config(data)

    if not config.is_valid_schedule():
        print('Schedule %r is invalid' % (config.schedule,))
        sys.exit(1)