Esempio n. 1
0
    def test_validate_group_directory(self):
        self.bagdir = os.path.join(self.tempdir, "samplembag02")
        shutil.copytree(os.path.join(datadir, "samplembag02"), self.bagdir)

        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_file_lookup(version="0.2")
        self.assertEqual(results.count_applied(), 6)
        self.assertTrue(results.ok())

        with open(os.path.join(self.bagdir, "multibag", "group-directory.txt"),
                  "a") as fd:
            fd.write("metadata/pod.json\n")
        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_file_lookup(version="0.2")
        self.assertEqual(results.count_applied(), 6)
        self.assertEqual(results.count_failed(), 2)
        self.assertTrue(not results.ok())

        os.remove(os.path.join(self.bagdir, "multibag", "group-directory.txt"))
        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_file_lookup(version="0.2")
        self.assertEqual(results.count_applied(), 2)
        self.assertEqual(results.count_failed(), 1)
        self.assertEqual(results.failed()[0].label, "4.0-2")
        self.assertTrue(not results.ok())
Esempio n. 2
0
    def test_validate_group_members(self):
        self.bagdir = os.path.join(self.tempdir, "samplembag02")
        shutil.copytree(os.path.join(datadir, "samplembag02"), self.bagdir)

        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_member_bags(version="0.2")
        self.assertEqual(results.count_applied(), 7)
        self.assertTrue(results.ok())

        with open(os.path.join(self.bagdir, "multibag", "group-members.txt"),
                  "a") as fd:
            fd.write("goober\n")
        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_member_bags(version="0.2")
        self.assertEqual(results.count_applied(), 7)
        self.assertEqual(results.count_failed(), 1)
        self.assertEqual(results.failed()[0].label, "4.1-4")
        self.assertTrue(not results.ok())

        os.remove(os.path.join(self.bagdir, "multibag", "group-members.txt"))
        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_member_bags(version="0.2")
        self.assertEqual(results.count_applied(), 2)
        self.assertEqual(results.count_failed(), 1)
        self.assertEqual(results.failed()[0].label, "4.0-1")
        self.assertTrue(not results.ok())
Esempio n. 3
0
    def test_validate_member_bags(self):
        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_member_bags()
        self.assertEqual(results.count_applied(), 7)
        self.assertTrue(results.ok())

        with open(os.path.join(self.bagdir, "multibag", "member-bags.tsv"),
                  "a") as fd:
            fd.write("goober\n")
        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_member_bags()
        self.assertEqual(results.count_applied(), 7)
        self.assertEqual(results.count_failed(), 1)
        self.assertTrue(not results.ok())
Esempio n. 4
0
    def test_validate_head_version(self):
        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_head_version()
        self.assertEqual(results.count_applied(), 2)
        self.assertTrue(results.ok())

        valid8r.bag.info['Multibag-Head-Version'] = ""
        results = valid8r.validate_head_version()
        self.assertEqual(results.count_applied(), 2)
        self.assertEqual(results.count_failed(), 1)
        self.assertEqual(results.failed()[0].label, "3-Head-Version_nonempty")
        self.assertTrue(not results.ok())

        valid8r.bag.info['Multibag-Head-Version'] = ["1.0", "2.0"]
        results = valid8r.validate_head_version()
        self.assertEqual(results.count_applied(), 2)
        self.assertEqual(results.count_failed(), 1)
        self.assertEqual(results.failed()[0].label, "3-Head-Version_single")
        self.assertTrue(not results.ok())

        valid8r.bag.info['Multibag-Head-Version'] = ["1.0", ""]
        results = valid8r.validate_head_version()
        self.assertEqual(results.count_applied(), 2)
        self.assertEqual(results.count_failed(), 2)
        self.assertTrue(not results.ok())

        del valid8r.bag.info['Multibag-Head-Version']
        results = valid8r.validate_head_version()
        self.assertEqual(results.count_applied(), 1)
        self.assertEqual(results.count_failed(), 1)
        self.assertEqual(results.failed()[0].label, "3-Head-Version")
        self.assertTrue(not results.ok())
Esempio n. 5
0
    def test_validate_version(self):
        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_version()
        self.assertEqual(results.count_applied(), 3)
        self.assertTrue(results.ok())

        results = valid8r.validate_version(version="0.2")
        self.assertEqual(results.count_applied(), 3)
        self.assertTrue(not results.ok())
Esempio n. 6
0
    def test_ensure_valid(self):
        valid8r = bagv.HeadBagValidator(self.bagdir)
        valid8r.ensure_valid()

        with open(os.path.join(self.bagdir, "multibag", "file-lookup.tsv"),
                  "a") as fd:
            fd.write("goober  \t  samplembag\n")

        with self.assertRaises(val.MultibagValidationError):
            valid8r.ensure_valid()
Esempio n. 7
0
    def test_validate_aggregation_info(self):
        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_aggregation_info()
        self.assertEqual(results.count_applied(), 0)
        self.assertTrue(results.ok())

        aginfo = os.path.join(self.bagdir, "multibag", "aggregation-info.txt")
        shutil.copyfile(os.path.join(self.bagdir, "bag-info.txt"), aginfo)
        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_aggregation_info()
        self.assertEqual(results.count_applied(), 1)
        self.assertTrue(results.ok())

        with open(aginfo, 'a') as fd:
            fd.write("goober\n")
        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_aggregation_info()
        self.assertEqual(results.count_applied(), 1)
        self.assertEqual(results.count_failed(), 1)
        self.assertTrue(not results.ok())
Esempio n. 8
0
    def test_validate_tag_directory(self):
        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_tag_directory()
        self.assertEqual(results.count_applied(), 3)
        self.assertTrue(results.ok())

        os.rename(os.path.join(self.bagdir, "multibag"),
                  os.path.join(self.bagdir, "goober"))
        results = valid8r.validate_tag_directory()
        self.assertEqual(results.count_applied(), 3)
        self.assertEqual(results.count_failed(), 1)
        self.assertTrue(not results.ok())
Esempio n. 9
0
    def test_validate_baginfo_recs(self):
        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_baginfo_recs()
        self.assertEqual(results.count_applied(), 6)
        self.assertTrue(results.ok())

        del valid8r.bag.info['Internal-Sender-Identifier']
        results = valid8r.validate_baginfo_recs()
        self.assertEqual(results.count_applied(), 5)
        self.assertEqual(results.count_failed(), 1)
        self.assertEqual(results.failed()[0].label, "3-2")
        self.assertTrue(not results.ok())
Esempio n. 10
0
    def test_validate_head_deprecates(self):
        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_head_deprecates()
        self.assertEqual(results.count_applied(), 0)
        self.assertTrue(results.ok())

        with open(os.path.join(self.bagdir, "bag-info.txt"), "a") as fd:
            fd.write("Multibag-Head-Deprecates: 0.1\n")

        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_head_deprecates()
        self.assertEqual(results.count_applied(), 4)
        self.assertTrue(results.ok())

        with open(os.path.join(self.bagdir, "bag-info.txt"), "a") as fd:
            fd.write("Multibag-Head-Deprecates: 0.2, goober\n")

        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_head_deprecates()
        self.assertEqual(results.count_applied(), 4)
        self.assertTrue(results.ok())

        with open(os.path.join(self.bagdir, "bag-info.txt"), "a") as fd:
            fd.write("Multibag-Head-Deprecates: 0.3, samplembag\n")

        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_head_deprecates()
        self.assertEqual(results.count_applied(), 4)
        self.assertEqual(results.count_failed(), 1)
        self.assertEqual(results.failed()[0].label,
                         "3-Head-Deprecates_notselfdep")
        self.assertTrue(not results.ok())

        valid8r.bag.info['Multibag-Head-Deprecates'] = ["0.1", "1.0, goober"]
        results = valid8r.validate_head_deprecates()
        self.assertEqual(results.count_applied(), 4)
        self.assertEqual(results.count_failed(), 1)
        self.assertEqual(results.failed()[0].label,
                         "3-Head-Deprecates_notselfdep")
        self.assertTrue(not results.ok())
Esempio n. 11
0
    def test_validate_file_lookup(self):
        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_file_lookup()
        self.assertEqual(results.count_applied(), 6)
        self.assertTrue(results.ok())

        with open(os.path.join(self.bagdir, "multibag", "file-lookup.tsv"),
                  "a") as fd:
            fd.write("goober  \t  samplembag\n")
        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_file_lookup()
        self.assertEqual(results.count_applied(), 6)
        self.assertEqual(results.count_failed(), 1)
        self.assertEqual(results.failed()[0].label, "4.2-2")
        self.assertTrue(not results.ok())

        with open(os.path.join(self.bagdir, "multibag", "file-lookup.tsv"),
                  "a") as fd:
            fd.write("metadata/pod.json\n")
        valid8r = bagv.HeadBagValidator(self.bagdir)
        results = valid8r.validate_file_lookup()
        self.assertEqual(results.count_applied(), 6)
        self.assertEqual(results.count_failed(), 3)
        self.assertTrue(not results.ok())
Esempio n. 12
0
 def test_validate_reference(self):
     valid8r = bagv.HeadBagValidator(self.bagdir)
     results = valid8r.validate_reference()
     self.assertEqual(results.count_applied(), 3)
     self.assertTrue(results.ok())
Esempio n. 13
0
 def test_is_valid(self):
     valid8r = bagv.HeadBagValidator(self.bagdir)
     self.assertTrue(valid8r.is_valid())