Example #1
0
def test_stringify():
    assert setupmeta.stringify((1, 2)) == '("1", "2")'
    assert setupmeta.stringify(["1", "2"]) == '["1", "2"]'
    assert setupmeta.stringify(("a b", "c d")) == '("a b", "c d")'

    assert setupmeta.stringify("""quoted ("double"+'single')""", quote=True) == """'quoted ("double"+'single')'"""
    assert setupmeta.stringify("""quoted 'single only'""", quote=True) == '''"quoted 'single only'"'''
    assert setupmeta.stringify("no 'foo'") == "no 'foo'"
    assert setupmeta.stringify("no 'foo'", quote=True) == '''"no 'foo'"'''

    assert setupmeta.stringify({"bar": "no 'foo'"}) == """{bar: no 'foo'}"""
    assert setupmeta.stringify({"bar": 'no "foo"'}) == """{bar: no "foo"}"""

    assert setupmeta.listify("a b") == ["a", "b"]
    assert sorted(setupmeta.listify(set("ab"))) == ["a", "b"]
    assert setupmeta.listify(("a", "b")) == ["a", "b"]
Example #2
0
    def __init__(self, main, extra, branches, hook, **kwargs):
        self.main = main
        self.extra = extra
        if kwargs:
            setupmeta.warn("Ignored fields for 'versioning': %s" % kwargs)

        self.main_bits = self.bits(main)
        if isinstance(self.main_bits, list):
            self.bumpable = [
                b.text for b in self.main_bits if b.text in BUMPABLE
            ]

        else:
            self.bumpable = []

        self.extra_bits = self.bits(extra)
        self.branches = branches
        self.hook = hook
        if self.branches and hasattr(self.branches, "lstrip"):
            self.branches = self.branches.lstrip("(").rstrip(")")

        self.branches = setupmeta.listify(self.branches, separator=",")
        self.text = self.formatted(self.branches, self.main, self.extra)
        if not self.main_bits:
            self.problem = "No versioning format specified"
            return

        all_bits = self.main_bits if isinstance(self.main_bits, list) else []
        if isinstance(self.extra_bits, list):
            all_bits = all_bits + self.extra_bits

        problems = [bit.problem for bit in all_bits if bit.problem]
        self.problem = "\n".join(problems) if problems else None
Example #3
0
def test_listify():
    assert setupmeta.listify("a, b") == ['a,', 'b']
    assert setupmeta.listify("a,  b") == ['a,', 'b']
    assert setupmeta.listify("a, b", separator=',') == ['a', 'b']
    assert setupmeta.listify("a,, b", separator=',') == ['a', 'b']
    assert setupmeta.listify("a,\n b", separator=',') == ['a', 'b']
    assert setupmeta.listify("a\n b", separator=',') == ['a', 'b']
Example #4
0
def test_listify():
    assert setupmeta.listify("a, b") == ["a,", "b"]
    assert setupmeta.listify("a,  b") == ["a,", "b"]
    assert setupmeta.listify("a, b", separator=",") == ["a", "b"]
    assert setupmeta.listify("a,, b", separator=",") == ["a", "b"]
    assert setupmeta.listify("a,\n b", separator=",") == ["a", "b"]
    assert setupmeta.listify("a\n b", separator=",") == ["a", "b"]
Example #5
0
 def add_definition(self, key, value, source, override=False):
     """
     :param str key: Key being defined
     :param value: Value to add (first value wins, unless override used)
     :param str source: Where this key/value came from
     :param bool override: If True, 'value' is forcibly taken
     """
     if key == 'keywords':
         value = listify(value, separator=',')
     definition = self.definitions.get(key)
     if definition is None:
         definition = Definition(key)
         self.definitions[key] = definition
     definition.add(value, source, override=override)
Example #6
0
 def __init__(self, main, extra, separator, branches, hook, **kwargs):
     self.main = main
     self.extra = extra
     if kwargs:
         warnings.warn("Ignored fields for 'versioning': %s" % kwargs)
     self.main_bits = self.bits(main)
     self.extra_bits = self.bits(extra)
     self.separator = separator
     self.branches = branches
     self.hook = hook
     if self.branches and hasattr(self.branches, 'lstrip'):
         self.branches = self.branches.lstrip('(').rstrip(')')
     self.branches = setupmeta.listify(self.branches, separator=',')
     self.text = self.formatted(self.branches, self.main, self.separator,
                                self.extra)
     if not self.main_bits:
         self.problem = "No versioning format specified"
         return
     all_bits = self.main_bits if isinstance(self.main_bits, list) else []
     if isinstance(self.extra_bits, list):
         all_bits = all_bits + self.extra_bits
     problems = [bit.problem for bit in all_bits if bit.problem]
     self.problem = '\n'.join(problems) if problems else None
Example #7
0
def test_stringify():
    assert setupmeta.stringify_dict('foo') == 'foo'
    assert setupmeta.stringify((1, 2)) == "('1', '2')"
    assert setupmeta.listify("a b") == ['a', 'b']
    assert sorted(setupmeta.listify(set("ab"))) == ['a', 'b']
    assert setupmeta.listify(("a", "b")) == ['a', 'b']