def test_serializable(self):
     fj = FileJSON(self.directory, self.name, [])
     content = SerializableClass("1", "2")
     fj.write(content)
     content_r = fj.read()
     self.assertEqual(content_r, {"field1":"1", "field2":"2"})
     self.assertRaises(TypeError, fj.write, NonSerializableClass())
 def test_deserializable_collection(self):
     fj = FileJSON(self.directory, self.name, [])
     content1 = DeserializableClass("1", "2")
     content2 = DeserializableClass("3", "4")
     content = serializable_elist([content1, content2])
     fj.write(content)
     content_r = fj.read()
     self.assertEqual(content, content_r)
def main():
    parser = argparse.ArgumentParser(
        description='Package DB generator for gs-pypi.')
    parser.add_argument('db_dirname', help='directory to store DB')
    parser.add_argument('-c', '--count', help='count of records that should be processed',
                        default=None)
    parser.add_argument('--layout-version',
                        help='DB layout version', default='1')
    parser.add_argument('--structure-version',
                        help='DB structure version', default='1')
    parser.add_argument(
        '-f', '--fmt', help='packages file format (json or bson)', default='bson')

    args = parser.parse_args(sys.argv[1:])

    db_name = args.db_dirname
    count = args.count
    layout_version = int(args.layout_version)
    structure_version = int(args.structure_version)
    fmt = args.fmt
    if count:
        count = int(count)

    logger = Logger()
    cfg_path = None
    for path in '.', '~', eprefix + '/etc/g-sorcery':
        current = os.path.join(path, "gs-pypi.json")
        if (os.path.isfile(current)):
            cfg_path = path
            break
    if not cfg_path:
        logger.error('no config file for gs-pypi backend\n')
        return -1
    cfg_f = FileJSON(cfg_path, "gs-pypi.json", ['package'])
    try:
        config = cfg_f.read()
    except FileJSONError as e:
        logger.error('error loading config file for gs-pypi: ' + str(e) + '\n')
        return -1

    generator = PypiDBGenerator(preferred_layout_version=layout_version,
                                preferred_db_version=structure_version,
                                preferred_category_format=fmt,
                                count=count)
    temp_dir = TemporaryDirectory()
    pkg_db = generator(temp_dir.name, "pypi",
                       config=config["repositories"]["pypi"],
                       common_config=config["common_config"])
    if os.path.exists(db_name):
        os.system('rm -rf ' + db_name + '/*')
    else:
        os.mkdir(db_name)
    copy_all(os.path.join(temp_dir.name, "pypi/db"), db_name)
    os.system('tar cvzf ' + db_name + '.tar.gz ' + db_name)
def main():
    parser = argparse.ArgumentParser(description='Package DB generator for gs-pypi.')
    parser.add_argument('db_dirname', help='directory to store DB')
    parser.add_argument('-c', '--count', help='count of records that should be processed',
                        default=None)
    parser.add_argument('--layout-version', help='DB layout version', default='1')
    parser.add_argument('--structure-version', help='DB structure version', default='1')
    parser.add_argument('-f', '--fmt', help='packages file format (json or bson)', default='bson')

    args = parser.parse_args(sys.argv[1:])

    db_name = args.db_dirname
    count = args.count
    layout_version = int(args.layout_version)
    structure_version = int(args.structure_version)
    fmt = args.fmt
    if count:
        count = int(count)

    logger = Logger()
    cfg_path = None
    for path in '.', '~', '/etc/g-sorcery':
        current = os.path.join(path, "gs-pypi.json")
        if (os.path.isfile(current)):
            cfg_path = path
            break
    if not cfg_path:
        logger.error('no config file for gs-pypi backend\n')
        return -1
    cfg_f = FileJSON(cfg_path, "gs-pypi.json", ['package'])
    try:
        config = cfg_f.read()
    except FileJSONError as e:
        logger.error('error loading config file for gs-pypi: ' + str(e) + '\n')
        return -1

    generator = PypiDBGenerator(preferred_layout_version=layout_version,
                                preferred_db_version=structure_version,
                                preferred_category_format=fmt,
                                count=count)
    temp_dir = TemporaryDirectory()
    pkg_db = generator(temp_dir.name, "pypi",
                       config=config["repositories"]["pypi"],
                       common_config=config["common_config"])
    if os.path.exists(db_name):
        os.system('rm -rf ' + db_name + '/*')
    else:
        os.mkdir(db_name)
    copy_all(os.path.join(temp_dir.name, "pypi/db"), db_name)
    os.system('tar cvzf ' +  db_name + '.tar.gz ' + db_name)
 def test_deserializable(self):
     fj = FileJSON(self.directory, self.name, [])
     content = DeserializableClass("1", "2")
     fj.write(content)
     content_r = fj.read()
     self.assertEqual(content, content_r)
 def test_write_read(self):
     fj = FileJSON(self.directory, self.name, ["mandatory"])
     content = {"mandatory":"1", "test":"2"}
     fj.write(content)
     content_r = fj.read()
     self.assertEqual(content, content_r)
 def test_write_luck_of_mandatory_key(self):
     fj = FileJSON(self.directory, self.name, ["mandatory"])
     self.assertRaises(FileJSONError, fj.write, {"test":"test"})
 def test_read_luck_of_mandatory_key(self):
     fj = FileJSON(self.directory, self.name, ["mandatory"])
     os.makedirs(self.directory)
     with open(self.path, 'w') as f:
         json.dump({"test":"test"}, f)
     self.assertRaises(FileJSONError, fj.read)
 def test_read_nonexistent_mandatory_key(self):
     fj = FileJSON(self.directory, self.name, ["mandatory1", "mandatory2"])
     content = fj.read()
     self.assertEqual(content, {"mandatory1":"", "mandatory2":""})
     self.assertTrue(os.path.isfile(self.path))
Exemple #10
0
 def test_read_nonexistent(self):
     fj = FileJSON(self.directory, self.name, [])
     content = fj.read()
     self.assertEqual(content, {})
     self.assertTrue(os.path.isfile(self.path))