서로 다른 연습곡 30개에 도입부와 마무리를 추가함
CI / Frontend - type-check & test (push) Canceled after 0s

비슷한 임시 연습곡 다섯 개를 교체했다. 부르크뮐러와 슈만 원본 30곡의 출처와 권리 정보를 보존했다. 각 MIDI에 양손 연습용 도입부와 마무리를 넣고 난이도를 음표 밀도로 분류했다.

MIDI 구조 검사 30개와 서버 격리 테스트 5개를 통과했다. 운영 백업: /home/syskiller/piano/backups/bach-to-basics/20261009-practice-30-intro-ending. 백엔드만 운영에 반영했고 HTTPS 공개 목록과 30개 다운로드를 확인했다. 회원 업로드 2건은 보존됐다. 실제 건반 연주감 검사는 남아 있다.
This commit is contained in:
이창현
2026-10-09 23:25:37 +09:00
parent 89f66c3bee
commit 8298f5af26
108 changed files with 2181 additions and 282 deletions
+4 -8
View File
@@ -57,14 +57,9 @@ 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",
}
def test_practice_collection_is_seeded_as_public(self) -> None:
names = {f"practice-burgmuller-{number:02}.mid" for number in range(1, 19)}
names.update(f"practice-schumann-{number:02}.mid" for number in range(1, 13))
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"
@@ -76,6 +71,7 @@ class LibraryDatabaseTest(unittest.TestCase):
self.assertEqual(row["min_tier"], 0)
self.assertIsNone(row["owner_id"])
self.assertTrue(Path(self.temp.name, "midi", name).is_file())
self.assertFalse(any(row["seed_key"] in self.db.LEGACY_SAMPLE_KEYS for row in rows))
if __name__ == "__main__":