def test_parse_from_json_no_valid_boot_time(self):
        boot_json = {
            "board": "board",
            "job": "job",
            "kernel": "kernel",
            "defconfig": "defconfig",
            "lab_name": "lab_name",
            "git_branch": "branch",
            "dtb": "dtb",
            "boot_time": "foo",
            "build_environment": "build_environment"
        }
        errors = {}

        doc = bimport._parse_boot_from_json(boot_json, self.db, errors)

        self.assertIsNotNone(doc)
        self.assertEqual(doc.board, "board")
        self.assertEqual(doc.job, "job")
        self.assertEqual(doc.kernel, "kernel")
        self.assertEqual(doc.defconfig, "defconfig")
        self.assertEqual(doc.git_branch, "branch")
        self.assertEqual(doc.dtb, "dtb")
        self.assertEqual(doc.time, datetime.datetime(1970, 1, 1, 0, 0))
        self.assertListEqual([400], errors.keys())
Пример #2
0
    def test_parse_from_json_no_valid_boot_time(self):
        boot_json = {
            "board": "board",
            "job": "job",
            "kernel": "kernel",
            "defconfig": "defconfig",
            "lab_name": "lab_name",
            "git_branch": "branch",
            "dtb": "dtb",
            "boot_time": "foo",
            "build_environment": "build_environment"
        }
        errors = {}

        doc = bimport._parse_boot_from_json(boot_json, self.db, errors)

        self.assertIsNotNone(doc)
        self.assertEqual(doc.board, "board")
        self.assertEqual(doc.job, "job")
        self.assertEqual(doc.kernel, "kernel")
        self.assertEqual(doc.defconfig, "defconfig")
        self.assertEqual(doc.git_branch, "branch")
        self.assertEqual(doc.dtb, "dtb")
        self.assertEqual(doc.time, datetime.datetime(1970, 1, 1, 0, 0))
        self.assertListEqual([400], errors.keys())
    def test_parse_from_json_with_null(self):
        boot_json = {"board": "null"}
        errors = {}

        doc = bimport._parse_boot_from_json(boot_json, self.db, errors)
        self.assertIsNone(doc)
        self.assertListEqual([400], errors.keys())
    def test_save_to_disk_dir_create_error(self, mock_mkdir):
        errors = {}
        base_path = tempfile.mkdtemp()
        json_obj = {
            "board": "board",
            "job": "job",
            "kernel": "kernel",
            "defconfig": "defconfig",
            "arch": "arm",
            "defconfig_full": "defconfig+FRAGMENT",
            "lab_name": "lab",
            "git_branch": "branch",
            "build_environment": "build_environment"
        }
        boot_doc = mboot.BootDocument("board", "job", "kernel", "defconfig",
                                      "lab", "branch", "build_environment",
                                      "defconfig+FRAGMENT", "arm")
        expected_path = os.path.join(base_path, "job", "branch", "kernel",
                                     "arm", "defconfig+FRAGMENT",
                                     "build_environment", "lab")
        expected_file = os.path.join(expected_path, "boot-board.json")

        exception = OSError("Error")
        exception.errno = errno.EIO
        mock_mkdir.side_effect = exception

        try:
            bimport.save_to_disk(boot_doc, json_obj, base_path, errors)
            self.assertFalse(os.path.exists(expected_path))
            self.assertFalse(os.path.exists(expected_file))
            self.assertListEqual([500], errors.keys())
        finally:
            shutil.rmtree(base_path)
Пример #5
0
    def test_save_to_disk_dir_create_error(self, mock_mkdir):
        errors = {}
        base_path = tempfile.mkdtemp()
        json_obj = {
            "board": "board",
            "job": "job",
            "kernel": "kernel",
            "defconfig": "defconfig",
            "arch": "arm",
            "defconfig_full": "defconfig+FRAGMENT",
            "lab_name": "lab",
            "git_branch": "branch",
            "build_environment": "build_environment"
        }
        boot_doc = mboot.BootDocument(
            "board", "job", "kernel", "defconfig", "lab", "branch",
            "build_environment", "defconfig+FRAGMENT", "arm")
        expected_path = os.path.join(
            base_path,
            "job", "branch", "kernel", "arm", "defconfig+FRAGMENT",
            "build_environment", "lab")
        expected_file = os.path.join(expected_path, "boot-board.json")

        exception = OSError("Error")
        exception.errno = errno.EIO
        mock_mkdir.side_effect = exception

        try:
            bimport.save_to_disk(boot_doc, json_obj, base_path, errors)
            self.assertFalse(os.path.exists(expected_path))
            self.assertFalse(os.path.exists(expected_file))
            self.assertListEqual([500], errors.keys())
        finally:
            shutil.rmtree(base_path)
Пример #6
0
 def test_parse_from_json_wrong_json(self, mock_null):
     boot_json = {
         "foo": "bar"
     }
     errors = {}
     doc = bimport._parse_boot_from_json(boot_json, self.db, errors)
     self.assertIsNone(doc)
     self.assertListEqual([400], errors.keys())
Пример #7
0
    def test_parse_from_json_with_null(self):
        boot_json = {
            "board": "null"
        }
        errors = {}

        doc = bimport._parse_boot_from_json(boot_json, self.db, errors)
        self.assertIsNone(doc)
        self.assertListEqual([400], errors.keys())
Пример #8
0
    def test_parse_from_json_wrong_boot_time_negative(self):
        boot_json = {
            "job": "job",
            "kernel": "kernel",
            "defconfig": "defconfig",
            "board": "board",
            "dtb": "dtb",
            "lab_name": "lab_name",
            "git_branch": "branch",
            "boot_time": -1500.0
        }
        errors = {}

        doc = bimport._parse_boot_from_json(boot_json, self.db, errors)

        self.assertEqual(doc.board, "board")
        self.assertEqual(doc.job, "job")
        self.assertEqual(doc.kernel, "kernel")
        self.assertEqual(doc.defconfig, "defconfig")
        self.assertEqual(doc.dtb, "dtb")
        self.assertEqual(doc.time, datetime.datetime(1970, 1, 1, 0, 0))
        self.assertListEqual([400], errors.keys())
Пример #9
0
    def test_parse_from_json_wrong_boot_time_too_big_negative(self):
        boot_json = {
            "job": "job",
            "kernel": "kernel",
            "defconfig": "defconfig",
            "board": "board",
            "dtb": "dtb",
            "lab_name": "lab_name",
            "git_branch": "branch",
            "boot_time": -sys.maxint - 1,
            "build_environment": "build_environment"
        }
        errors = {}

        doc = bimport._parse_boot_from_json(boot_json, self.db, errors)

        self.assertEqual(doc.board, "board")
        self.assertEqual(doc.job, "job")
        self.assertEqual(doc.kernel, "kernel")
        self.assertEqual(doc.defconfig, "defconfig")
        self.assertEqual(doc.dtb, "dtb")
        self.assertEqual(doc.time, datetime.datetime(1970, 1, 1, 0, 0))
        self.assertListEqual([400], errors.keys())
 def test_parse_from_json_wrong_json(self, mock_null):
     boot_json = {"foo": "bar"}
     errors = {}
     doc = bimport._parse_boot_from_json(boot_json, self.db, errors)
     self.assertIsNone(doc)
     self.assertListEqual([400], errors.keys())