Example #1
0
 def test_invalid(self):
     with self.assertRaises(ValidationError):
         GitPackage.validate(
             {
                 'git': 'http://example.com',
                 'version': '0.0.1'
             }, )
Example #2
0
    def test_resolve_fail(self):
        a_contract = GitPackage.from_dict({
            'git': 'http://example.com',
            'revision': '0.0.1'
        })
        b_contract = GitPackage.from_dict({
            'git': 'http://example.com',
            'revision': '0.0.2'
        })
        a = GitUnpinnedPackage.from_contract(a_contract)
        b = GitUnpinnedPackage.from_contract(b_contract)
        c = a.incorporate(b)
        self.assertEqual(c.git, 'http://example.com')
        self.assertEqual(c.revisions, ['0.0.1', '0.0.2'])

        with self.assertRaises(dbt.exceptions.DependencyException):
            c.resolved()
Example #3
0
    def from_contract(cls, contract: GitPackage) -> 'GitUnpinnedPackage':
        revisions = contract.get_revisions()

        # we want to map None -> True
        warn_unpinned = contract.warn_unpinned is not False
        return cls(git=contract.git,
                   revisions=revisions,
                   warn_unpinned=warn_unpinned)
Example #4
0
    def test_resolve_ok(self):
        a_contract = GitPackage.from_dict({
            'git': 'http://example.com',
            'revision': '0.0.1'
        })
        b_contract = GitPackage.from_dict({
            'git': 'http://example.com',
            'revision': '0.0.1',
            'warn-unpinned': False
        })
        a = GitUnpinnedPackage.from_contract(a_contract)
        b = GitUnpinnedPackage.from_contract(b_contract)
        self.assertTrue(a.warn_unpinned)
        self.assertFalse(b.warn_unpinned)
        c = a.incorporate(b)

        c_pinned = c.resolved()
        self.assertEqual(c_pinned.name, 'http://example.com')
        self.assertEqual(c_pinned.get_version(), '0.0.1')
        self.assertEqual(c_pinned.source_type(), 'git')
        self.assertFalse(c_pinned.warn_unpinned)
Example #5
0
    def test_default_revision(self):
        a_contract = GitPackage.from_dict({'git': 'http://example.com'})
        self.assertEqual(a_contract.revision, None)
        self.assertIs(a_contract.warn_unpinned, None)

        a = GitUnpinnedPackage.from_contract(a_contract)
        self.assertEqual(a.git, 'http://example.com')
        self.assertEqual(a.revisions, [])
        self.assertIs(a.warn_unpinned, True)

        a_pinned = a.resolved()
        self.assertEqual(a_pinned.name, 'http://example.com')
        self.assertEqual(a_pinned.get_version(), 'HEAD')
        self.assertEqual(a_pinned.source_type(), 'git')
        self.assertIs(a_pinned.warn_unpinned, True)
Example #6
0
    def test_init(self):
        a_contract = GitPackage.from_dict(
            {
                'git': 'http://example.com',
                'revision': '0.0.1'
            }, )
        self.assertEqual(a_contract.git, 'http://example.com')
        self.assertEqual(a_contract.revision, '0.0.1')
        self.assertIs(a_contract.warn_unpinned, None)

        a = GitUnpinnedPackage.from_contract(a_contract)
        self.assertEqual(a.git, 'http://example.com')
        self.assertEqual(a.revisions, ['0.0.1'])
        self.assertIs(a.warn_unpinned, True)

        a_pinned = a.resolved()
        self.assertEqual(a_pinned.name, 'http://example.com')
        self.assertEqual(a_pinned.get_version(), '0.0.1')
        self.assertEqual(a_pinned.source_type(), 'git')
        self.assertIs(a_pinned.warn_unpinned, True)