示例#1
0
def get_last_paket_id(lpse: Lpse, tender=True):
    # first
    if tender:
        data_first = lpse.get_paket_tender(start=0, length=1)
        data_last = lpse.get_paket_tender(start=0, length=1, ascending=True)
    else:
        data_first = lpse.get_paket_non_tender(start=0, length=1)
        data_last = lpse.get_paket_non_tender(start=0, length=1, ascending=True)

    if data_first and data_last:
        if not data_first['recordsTotal'] == 0:
            return [data_first['data'][0][0], data_last['data'][0][0], data_first['recordsTotal']]

    return None
示例#2
0
    def setUp(self):
        host = 'http://lpse.bengkuluprov.go.id'

        lpse = Lpse(host)
        paket = lpse.get_paket_non_tender(start=0, length=1)['data']
        self.detil = lpse.detil_paket_non_tender(paket[0][0])
示例#3
0
class TestPaketNonTender(unittest.TestCase):
    def setUp(self):
        self.lpse = Lpse('http://lpse.padang.go.id', timeout=30)
        self.lpse.auth_token = self.lpse.get_auth_token()

    def test_get_paket_non_tender(self):
        paket = self.lpse.get_paket_non_tender(length=5)

        self.assertEqual(len(paket['data']), 5)

    def test_get_detil_pengumuman_non_tender(self):
        detil = self.lpse.detil_paket_non_tender('2189624')
        detil.get_pengumuman()

        expected_result = {
            'kode_paket':
            '2189624',
            'nama_paket':
            'Pengadaan fishbox fiber kapasitas 50 liter, 75 liter dan 100 liter',
            'tanggal_pembuatan':
            '11 Februari 2019',
            'keterangan':
            '',
            'tahap_paket_saat_ini':
            'Paket Sudah Selesai',
            'instansi':
            'Pemerintah Daerah Kota Padang',
            'satuan_kerja':
            'DINAS KELAUTAN DAN PERIKANAN',
            'kategori':
            'Pengadaan Barang',
            'metode_pengadaan':
            'Pengadaan Langsung',
            'tahun_anggaran':
            'APBD 2019',
            'nilai_pagu_paket':
            199490000.0,
            'nilai_hps_paket':
            199481975.0,
            'lokasi_pekerjaan':
            ['7 Kec. wilayah pesisir Kota Padang - Padang (Kota)'],
            'kualifikasi_usaha':
            'Perusahaan Kecil'
        }

        self.assertEqual(detil.pengumuman, expected_result)

    def test_get_detil_peserta_non_tender(self):
        detil = self.lpse.detil_paket_non_tender('2189624')
        detil.get_peserta()

        expected_result = [{
            'no': '1',
            'nama_peserta': 'cv.samudera fiber',
            'npwp': '83.134.137.5-202.000',
            'harga_penawaran': 'Rp 199.280.125,00',
            'harga_terkoreksi': 'Rp 199.280.125,00'
        }]

        self.assertEqual(detil.peserta, expected_result)

    def test_get_detil_hasil_non_tender(self):
        detil = self.lpse.detil_paket_non_tender('2189624')
        expected_result = [{
            'no': '1',
            'nama_peserta': 'cv.samudera fiber',
            'a': 1,
            't': 1,
            'penawaran': 199280125.0,
            'penawaran_terkoreksi': 199280125.0,
            'hasil_negosiasi': 198992750.0,
            'h': 1,
            'p': True,
            'pk': True,
            'alasan': '',
            'npwp': '83.134.137.5-202.000'
        }]
        detil.get_hasil_evaluasi()

        self.assertEqual(detil.hasil, expected_result)

    def test_get_detil_pemenang_non_tender(self):
        detil = self.lpse.detil_paket_non_tender('4130624')
        expected_result = [{
            'alamat':
            'JL.SOSIOLOGI 1 A NO. 22 KOMPL. PGRI I SITEBA PADANG - Padang (Kota) - Sumatera Barat',
            'harga_penawaran': 12155000.0,
            'harga_terkoreksi': 12155000.0,
            'hasil_negosiasi': 12155000.0,
            'nama_pemenang': 'CV.DESIGN ENGINEERING CONSULTAN',
            'npwp': '02.591.921.8-201.000'
        }]
        detil.get_pemenang()

        self.assertEqual(expected_result, detil.pemenang)

    def test_get_detil_pemenang_berkontrak_non_tender(self):
        detil = self.lpse.detil_paket_non_tender('2189624')
        expected_result = [{
            'alamat':
            'Jorong Ketaping Nagari Lawang Kec. Matur - Agam (Kab.) - Sumatera Barat',
            'harga_penawaran': 199280125.0,
            'hasil_negosiasi': 198992750.0,
            'nama_pemenang': 'cv.samudera fiber',
            'npwp': '83.134.137.5-202.000'
        }]
        detil.get_pemenang_berkontrak()
        self.assertEqual(expected_result, detil.pemenang_berkontrak)

    def test_get_detil_jadwal_non_tender(self):
        detil = self.lpse.detil_paket_non_tender('2189624')
        expected_result = [{
            'no': '1',
            'tahap': 'Upload Dokumen Penawaran',
            'mulai': '18 Februari 2019 08:00',
            'sampai': '20 Februari 2019 15:59',
            'perubahan': '1 kali perubahan'
        }, {
            'no': '2',
            'tahap': 'Pembukaan Dokumen Penawaran',
            'mulai': '21 Februari 2019 08:00',
            'sampai': '21 Februari 2019 15:59',
            'perubahan': '1 kali perubahan'
        }, {
            'no': '3',
            'tahap': 'Evaluasi Penawaran',
            'mulai': '22 Februari 2019 08:00',
            'sampai': '22 Februari 2019 15:59',
            'perubahan': '2 kali perubahan'
        }, {
            'no': '4',
            'tahap': 'Klarifikasi Teknis dan Negosiasi',
            'mulai': '25 Februari 2019 08:00',
            'sampai': '25 Februari 2019 15:59',
            'perubahan': '1 kali perubahan'
        }, {
            'no': '5',
            'tahap': 'Penandatanganan Kontrak',
            'mulai': '26 Februari 2019 08:00',
            'sampai': '28 Februari 2019 15:59',
            'perubahan': '2 kali perubahan'
        }]
        detil.get_jadwal()

        self.assertEqual(detil.jadwal, expected_result)

    def test_detil_todict(self):
        detil = self.lpse.detil_paket_non_tender(2189624)
        detil.get_all_detil()

        self.assertIsInstance(detil.todict(), dict)

    def test_detil_todict_todict(self):
        detil = self.lpse.detil_paket_non_tender(2189624)
        detil.get_all_detil()
        detil.todict()
        detil.todict()

        self.assertIsInstance(detil.todict(), dict)

    def test_detil_id_random(self):
        detil = self.lpse.detil_paket_tender(111)

        self.assertRaises(LpseServerExceptions, detil.get_all_detil)
示例#4
0
class TestPaketNonTender(unittest.TestCase):
    def setUp(self):
        self.lpse = Lpse('http://lpse.jakarta.go.id', timeout=30)
        self.lpse.skip_spse_check = True
        self.lpse.auth_token = self.lpse.get_auth_token()
        self.id_non_tender_for_testing = self.get_id_for_testing()

    def get_id_for_testing(self):
        paket = self.lpse.get_paket_non_tender(start=0, length=50)

        for i in paket['data']:
            if i[3].lower().strip() == 'paket sudah selesai':
                return i[0]

    def test_get_paket_non_tender(self):
        paket = self.lpse.get_paket_non_tender(length=5)

        self.assertEqual(len(paket['data']), 5)

    def test_get_detil_pengumuman_non_tender(self):
        detil = self.lpse.detil_paket_non_tender(
            self.id_non_tender_for_testing)
        detil.get_pengumuman()

        for i, v in detil.pengumuman.items():
            self.assertIsNotNone(v)

    def test_get_detil_peserta_non_tender(self):
        detil = self.lpse.detil_paket_non_tender(
            self.id_non_tender_for_testing)
        detil.get_peserta()

        for peserta in detil.peserta:
            for i, v in peserta.items():
                self.assertIsNotNone(v)

    def test_get_detil_hasil_non_tender(self):
        detil = self.lpse.detil_paket_non_tender(
            self.id_non_tender_for_testing)
        detil.get_hasil_evaluasi()

        for hasil in detil.hasil:
            for i, v in hasil.items():
                self.assertIsNotNone(v)

    def test_get_detil_pemenang_non_tender(self):
        detil = self.lpse.detil_paket_non_tender(
            self.id_non_tender_for_testing)
        detil.get_pemenang()

        for pemenang in detil.pemenang:
            for i, v in pemenang.items():
                self.assertIsNotNone(v)

    def test_get_detil_jadwal_non_tender(self):
        detil = self.lpse.detil_paket_non_tender(
            self.id_non_tender_for_testing)
        detil.get_jadwal()

        for row in detil.jadwal:
            for i, v in row.items():
                self.assertIsNotNone(v)

    def test_detil_todict(self):
        detil = self.lpse.detil_paket_non_tender(
            self.id_non_tender_for_testing)
        detil.get_all_detil()

        self.assertIsInstance(detil.todict(), dict)

    def test_detil_todict_todict(self):
        detil = self.lpse.detil_paket_non_tender(
            self.id_non_tender_for_testing)
        detil.get_all_detil()
        detil.todict()
        detil.todict()

        self.assertIsInstance(detil.todict(), dict)

    def test_detil_id_random(self):
        detil = self.lpse.detil_paket_tender(111)

        self.assertRaises(LpseServerExceptions, detil.get_all_detil)

    def tearDown(self):
        del self.lpse