직접 만든 연습곡 다섯 파일을 공개 보관함에 등록했다. 별빛 계단은 입문과 쉬움 두 단계로 제공한다. MIDI 파서 검사와 백엔드 단위 테스트 5개를 통과했다. 운영 백업은 /home/syskiller/piano/backups/bach-to-basics/20261009-beginner-midi 에 있다. 백엔드만 갱신했고 비회원 목록과 다운로드를 확인했다. 실제 USB MIDI 장치 검사는 남아 있다. 사전 훅은 로컬 pnpm 의존성 불일치로 실행되지 않아 관련 검사를 직접 수행했다.
This commit is contained in:
@@ -57,6 +57,26 @@ class LibraryDatabaseTest(unittest.TestCase):
|
||||
self.assertNotIn("오른손", sample["tags"])
|
||||
self.assertNotIn("쉬운 반주", sample["tags"])
|
||||
|
||||
def test_self_composed_beginner_midis_are_seeded_as_public(self) -> None:
|
||||
names = {
|
||||
"starlight-steps-beginner.mid",
|
||||
"starlight-steps-easy.mid",
|
||||
"evening-waltz-beginner.mid",
|
||||
"sunrise-arpeggio-easy.mid",
|
||||
"black-key-pentatonic-beginner.mid",
|
||||
}
|
||||
with self.db.connect() as connection:
|
||||
rows = connection.execute(
|
||||
"SELECT seed_key, visibility, min_tier, owner_id FROM midi_items WHERE seed_key IS NOT NULL"
|
||||
).fetchall()
|
||||
matching = {row["seed_key"]: row for row in rows if row["seed_key"] in names}
|
||||
self.assertEqual(set(matching), names)
|
||||
for name, row in matching.items():
|
||||
self.assertEqual(row["visibility"], "public")
|
||||
self.assertEqual(row["min_tier"], 0)
|
||||
self.assertIsNone(row["owner_id"])
|
||||
self.assertTrue(Path(self.temp.name, "midi", name).is_file())
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user